Rails で食料品店の検索インターフェイスを構築しようとしています。データベースにいくつかの食料品店の商品を保存していますが、それらを検索する良い方法を見つけるのに苦労しています。
これまでのところ、Thinking Sphinxを使用して製品の全文検索を行ってきました。これは、「卵」などの一部のアイテムではうまく機能しますが、「ライム」などの他の検索ではいくつかの問題があります。
たとえば、「ライム」を検索すると、次のアイテムが返されます。
- ダイエット シエラ ミスト レモン ライム 冷蔵庫 メイト ソーダ
- G2 レモンライム 低カロリー電解質飲料
- ディア パーク ベリー ライム スパークリング ウォーター
- ライムクランベリージュースを使ったオーシャンスプレーカクテル
- ビンテージ セルツァー ウォーター ライム ライム
- ライムソーダコンターボトル入りコーラダイエット
- ライムソーダ冷蔵庫パック入りコーラダイエット
- ダイエット シエラ ミスト レモン ライム 冷蔵庫 メイト ソーダ
- リフレシュ ソーダ ダイエット レモン ライム 冷蔵庫パック
- リフレッシュソーダ レモンライム
- リフレシュソーダ レモンライム 冷蔵庫パック
- シエラミスト ナチュラルレモンライムソーダ
- ...など
私が本当に欲しかったのは実際の果物だけでした。これは私のデータベースに次の製品としてリストされています。
- ライム大
- 有機ライム
- ライムズ キー プレパック
検索をよりインテリジェントにするにはどうすればよいですか?
各製品について多くのカテゴリ データがあることは注目に値します。私は基本的に、各製品がツリーのルートノードである「フードツリー」全体を持っています。
たとえば、商品「Limes Large」の場合、次のカテゴリがあります。
果物と野菜 > 生の果物 > 柑橘類 > ライム 大
検索を改善するために、これらのカテゴリをどのように使用すればよいですか?
私の研究では、全文検索の代わりにセマンティック検索を使用する必要があると考え始めています。Ruby のPicky gemに出会いました。これは有望に見えますが、適切なアプローチがあるかどうかはわかりません。
セマンティック検索はより良い検索を実行するのに役立ちますか? Picky は、このように分類されたデータに適していますか? 他の洞察はありますか?ご指導いただければ幸いです。前もって感謝します。