ベストプラクティスを共有seaching代替形態は、検索したいキーワード可能
-
23-08-2019 - |
質問
いサイトが検索可能な利用可能。にのってからのログは、ユーザーになることもかんでい特異な期間だけで、複数の版を使われのサイトです。しっかりやって欲しい検索をしのその他の形態の言葉です。この問題が思って解くので、そのためのベスト-プラクティス。
ご注意ください:このサイトは英語コンテンツ.
一方私は考:
- もちろんこれには何らかのシソーラスファイルを別の形態の言葉です。
- 例:
- 検索のための"車"、また追加"車"を返します。
- 検索のための"行"、また追加"を"や"行"を返します。
- 検索のための"小さな"も追加"より小さく"、"最小"を返します。
- 検索"できる"、また追加"か","き","缶"と"缶"を返します。
- では逆に(検索のための"行"は"め"および"行").
- 欠点:
- ができない多くの新しい技術の言葉ない限り、辞書/シソーラスが更新されます。
- はわかりませんの性能を検索するシソーラスファイルです。
- 例:
- の代替形態algorithmicallyに基づき、一部のヒューリスティックス.
- 例:
- できた場合は、終了"s"または"es"または"ed"または"er"または"est",ドロップの接尾辞
- という言葉で終わり"ies"または"ied"または"環境放射能研究所"または"iest"、"y"
- できた場合は、最終的に"y"、"ies","ied","環境放射能研究所"、"iest"
- みの追加"s"、"es"、"er"と"est"の言葉です。
- 欠点:
- 発生し多くの単語も入力できるモデルです。
- うに感じhack.
- ようになっさんTheDailyWTF.com.:)
- 例:
- もっと洗練された?
私は考えているような組み合わせの最初の二つのアプローチがなんなのか目的は、シソーラスファイル(または何かというと"ソーラス"ななに関する情報は見つかりませんで"辞書").
解決
PorterStemFilter
<含めて考えてみましょう/>あなたの解析パイプラインインチインデックスを構築する際に使用されるクエリに同じ分析を実行してください。
私も使ってきたランカスター語幹良い結果とアルゴリズム。ガイドとしてPorterStemFilter
を使用して、Luceneのとの統合が容易です。
他のヒント
Wordには、しかし、(私のような)単語語幹がほぼ不可能である言語用のオプション#1が実行可能です。私は非常にうまく動作するようですLuceneのための私の言語(アイスランド)のための少なくとも一つのような実装を知ってます。
これらのいくつかは、かなりきちんとしたアイデアのように見えます。個人的に、私はちょうどそれがあいまいにするために、クエリ(クエリ変換)に、いくつかのタグを追加するか、組み込みの<のhref = "http://lucene.apache.org/java/2_2_0/api/org/apacheを使用することができますmispellingsのために役立つだろうレーベンシュタイン編集距離を、使用しています/lucene/search/FuzzyQuery.html」のrel = "nofollowをnoreferrer"> FuzzyQuery を、ます。
あいまい検索を使用した 'クエリタグの'、レーベンシュタインも使用されています。 「車」の検索を考えてみましょう。あなたは「〜車」にクエリを変更すると、それは「車」と「車のなどがあります。あなたが必要とするほとんどすべてを処理するクエリに他の変換があります。
あなたが専門分野で作業している場合(私は園芸でこれをしなかった)、または手動派生テーブルを作成するには、クエリログを使用することができ、通常の派生方法とうまく遊ぶdoes't言語でます。
インデックス作成や検索が適切な幹を持つテーブルで発生する任意の単語を交換するときに、あなたは/人々が探していると考えることができるすべての不一致のために>幹マッピング -ただ、単語を作成します。これをキャッシュ照会するおかげでかなり安いソリューションです。
ステミングこの問題に対処するためにかなり標準的な方法です。私はポーターのステマーは、標準的なキーワード検索のための積極的なへの道であることを発見しました。これは、異なる意味を持って一緒に言葉をconflating終わります。 KStemmerアルゴリズムを試してみてください。