Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MeiliSearch設定されたサーバーの検索で外部サーバーの投稿が結果に出ない場合がある #10845

Closed
tkmrgit opened this issue May 13, 2023 · 18 comments
Labels
⚠️bug? This might be a bug

Comments

@tkmrgit
Copy link

tkmrgit commented May 13, 2023

💡 Summary

MeiliSearch設定されたサーバーの検索で外部サーバーの投稿が結果に出てこないワード?がある

🥰 Expected Behavior

外部サーバーの投稿を含めた結果が返される

🤬 Actual Behavior

外部サーバーの投稿が含まれていない結果が返される

📝 Steps to Reproduce

1.ioで「Misskey」または「Misskey しゅいろ」と検索
2.「Misskey」の場合は外部サーバーが出てくるが、「Misskey しゅいろ」の場合に出てこない

📌 Environment

Misskey version:13.12.2

@tkmrgit tkmrgit added the ⚠️bug? This might be a bug label May 13, 2023
@syuilo
Copy link
Member

syuilo commented May 13, 2023

ioは昔の投稿についてはローカルしか取り込まなかったはず

@tkmrgit
Copy link
Author

tkmrgit commented May 13, 2023

ioのインデックスが原因か。
しかしMeiliSearchだと何か以前にも増して元の投稿の文に近いワードじゃないとヒットしないわね

もし別の原因あったらreopenしてください

@tkmrgit tkmrgit closed this as completed May 13, 2023
@syuilo
Copy link
Member

syuilo commented May 13, 2023

以前というと?

@syuilo
Copy link
Member

syuilo commented May 13, 2023

ElasticSearch時代のことなのかPostgreSQL時代のことなのか

@syuilo
Copy link
Member

syuilo commented May 13, 2023

PostgreSQLの方は単純な部分一致検索なのでMeilisearchよりも精度という意味では高い

@tkmrgit
Copy link
Author

tkmrgit commented May 13, 2023

以前というと?

DB検索だった頃と比べて極端にヒットが少ない。p1.a9z.dev(未導入?)で「Misskey しゅいろ」検索すると他にもいろんなioを含む投稿がヒットするが、ioだと直近でも3ヶ月前だったりしにゃい

@syuilo
Copy link
Member

syuilo commented May 13, 2023

「しゅいろさん」とかが含まれる文章はMeilisearchでは「しゅいろ」ではヒットしないわね

@syuilo
Copy link
Member

syuilo commented May 13, 2023

形態素解析の限界そう

@tkmrgit
Copy link
Author

tkmrgit commented May 13, 2023

😭

@tamaina
Copy link
Contributor

tamaina commented May 13, 2023

p1.a9z.devはPGroongaなんだけど、(日本語では)PGroongaのほうがいいらしい?

@miiton
Copy link

miiton commented May 13, 2023

いきなり失礼します。Twitterで見かけて気になったのでコメントしにきました。

しゅいろ という文字列が、 ゅいろ に分割されてしまうので起きる問題かなと推察します。

image image

Ref: https://www.atilika.com/ja/kuromoji/

実際に手元でやってみたところ結果は返ってはくるのですが、やはり ゅいろ に分かれてしまうので、ランキング的に下の方に行ってしまっているのかも?( MeiliSearch v1.1.1 です)
image
TypoToleranceを今は無効にしておられる のでそれを有効にしたらまた違った結果が返ってくるかもしれません(手元の少ないデータでは違いは無かったです)

ちなみに manticore search だと綺麗にヒットしました。
image

(追記)manticore-searchが単純にハイライト部分をマージして結果を出しているだけかもしれないのでこの部分は訂正します。すいません。

MeiliSearchの改善ポイントかなと思いますので、時間作ってIssue立ててみます。

@syuilo
Copy link
Member

syuilo commented May 13, 2023

@miiton

しゅいろ という文字列が、 し と ゅいろ に分割されてしまうので起きる問題かなと推察します。
Ref: https://www.atilika.com/ja/kuromoji/

Meilisearchは内部的に日本語の形態素解析にkuromojiを使用している感じですかね?そういうわけではない?

MeiliSearchの改善ポイントかなと思いますので、時間作ってIssue立ててみます。

ありがとうございます!!!

@acid-chicken
Copy link
Member

Meilisearchは内部的に日本語の形態素解析にkuromojiを使用している感じですかね?そういうわけではない?

kuromoji をベースに開発された kuromoji-rs の fork である lindera を使用している

@miiton
Copy link

miiton commented May 13, 2023

本件、もしかして冒頭に書いていただいている Misskey しゅいろ みたいに 英単語 + にほんご が駄目っぽいですかね?
しゅいろ だと検索できますよね?

@tamaina
Copy link
Contributor

tamaina commented May 13, 2023

わかる

(しゅいろで検索できてMisskeyと検索すると出てこないのは少々おかしい)

@u1-liquid
Copy link
Contributor

ちなみにCJK対応に関してちょっと問題があるので使うMeilliSearchのバージョンはこっちにした方がいいです

meilisearch/meilisearch#3588

@miiton
Copy link

miiton commented May 13, 2023

ちなみにCJK対応に関してちょっと問題があるので使うMeilliSearchのバージョンはこっちにした方がいいです

はい、検索が日本語と英単語だけならそれが良いと思います。中国や台湾のユーザーさんも視野に入れるならちょっと考えたほうがいいかもしれません。(中国語対応を外して日本語強制しているバージョンなので)


英単語 + 日本語で問題無い文字列と問題がある文字列があるみたいなので、いくつかパターン出してバグ報告してきます

@miiton
Copy link

miiton commented May 14, 2023

いくつかパターンを書いてみて試したのですが、結局 英語+ 日本語 とかではなく

  • しゅいろ という文字列が、 ゅいろ に分割されてしまう
  • Ranking Rulesのwords rule によって、複数ある検索ワードのうち最初のキーワードが結果に優先される

のあわせ技によって検索結果がおもてたんとちゃうになっているようです。(二転三転しました 🙇 )

要は固有名詞(Misskeyの場合はユーザーのお名前など)を適切に扱えるようになれば良いと思いますので、日本語対応のスレッドにて確認中です。
meilisearch/product#532 (comment)

(良い例文がぱっと思い浮かばなくて、しゅいろさんをたくさん出してしまいました)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
⚠️bug? This might be a bug
Projects
None yet
Development

No branches or pull requests

6 participants