2017-01-02 9 views
0

私のプロジェクトでは、製品の検索にelasticsearchを使用しています。それは素晴らしい仕事です。現在、私は "ボディウォッシュ"と "ボディウォッシュ"、 "フェイスウォッシュ"と "フェイスウォッシュ"などの複合語の問題に直面しています。私はキーワードの両方の形が同じものとして扱われるような仕掛けが必要です。ElasticSearchで扱う複合語 - "splitted"と "joined"の両方を同じものとして扱います

アナライザなどのオプションはありますか?このような種類の複合語をすべて集めて両方のキーワードをインデックスに挿入することはできません。私はアルゴリズム的な解決策が必要です。何かありますか?助けてください。

+1

です。それに注意する必要があります。英語の場合でも、それらの化合物は必ずしも同じではない。フレームバッファとフレームバッファ、ウォータークラフトとウォータークラフト - 同義語ではありません。最良の方法は、両方のバリアントを検索する調整された検索を提供することです(「あなたが探していたかもしれません...?」)他の弁証法で問題を解決する方法 - 「グレー」と「グレー」 )、「装甲」(決して車両を意味しない)、「装甲」(装甲車両を意味することができる) – Swift

+0

"最良の方法は、両方の亜種を検索する調整された検索を提供することです":はい私は同じものを探しています。あなたは私の索引に単語の両方の形式を保存し、どんな形式でも検索する必要があるのですか? – Devasish

+0

「フレームバッファ」を検索すると、2つのキーワードで検索されます。 "framebuffer"はキーワードです。連結されていると、隣接するキーワードが既存の索引項目を作成しているかどうかを確認する必要があります。次に、ステップは、採用する戦略と関連性に依存します(例:フレームバッファの検索がフレームバッファよりも関連性が高い場合は、優先されます。 – Swift

答えて

関連する問題