Richken blog

Rust製の検索エンジン Sonic を日本語で使えるか検証した

Rust製の検索エンジン Sonic を日本語で使えるか検証した
Photo by Dominika Roseclay from Pexels

少ないリソースで超高速で動くと有名で前から気になっていた Sonic を試してみた。

日本語では上手く動かない?

Sonic は日本語で上手く動かなかった。

中国の人が、2文字以上で suggest 機能が使えないという ISSUE を出している。
実際にその通りで、エラーメッセージもよくわからなかった😭

1文字なら使えるのかと言えばそうでもなく、
1文字で suggest を使おうとすると、入力したその一文字が帰ってくるだけだった。

"multi byte character" では一文字づつ切る様になっているのだろうか。

検証に使用したライブラリ

  • Rust https://github.com/pleshevskiy/sonic-channel
  • JavaScript https://github.com/valeriansaliou/node-sonic-channel

検索結果にあるべきレコードが結果に含まれない

今回の試行では商品データベースを読み込ませた。
そこには、たくさんの『おいしい〇〇』という『おいしい』から始まる商品名があった。

でも、実際に『おいしい』検索してみると、検索結果が0件となってしまった。

この stopwords の辺りは関係あるのかな?

しっかりとソースを追っていないので原因わからないけれど、
現状(2020-08-20現在)日本語では使えないみたい。

残念😭

(日本語で上手く使えた人がいたら 教えてください)

機能する文字列もあるみたい

文字列によっては、検索結果が帰ってきた。

ただ、関係ない結果も含まれてしまっているのだけど、大丈夫なのだろうか。

内部でどうやって処理されているのだろう。

その他

検索結果に重み付けをしたい場合はこのようにすると良いみたい。