edismax クエリ ハンドラを使用して、テキスト フィールドで「ホンダ バイクが欲しい」を検索しています。
私の意図は、「ホンダ バイク」が含まれているドキュメントを見つけることです。
"honda"、"bike"、"honda bike" を含む結果が表示されます。基本的に「ホンダ」や「バイク」には興味がありません。実は「ホンダのバイク」に興味があります。
フィールド内のフレーズがユーザー クエリと一致したかどうかを識別する方法はありますか?
これらのパラメーター (pf、pf2、および pf3) を調査します。
pf -- フレーズ フィールド。これにより、q 値が近接しているドキュメントをブーストできます。
pf2 および pf3 -- 入力をバイグラム (またはトライグラム) に分割します。
マッチングに余裕を持たせるためのスロップ設定もあります。
http://wiki.apache.org/solr/ExtendedDisMax#pf_.28Phrase_Fields.29
問題は、IDF がスコアを乱していたため、スコアに完全に依存して、何が完全に一致したかを自信を持って判断できなかったことです。だから私はIDF計算を無効にしました。
を見てみましょう
http://lucene.472066.n3.nabble.com/Identify-exact-search-in-edismax-td4011859.html#a4011976
ここで edismax の mm (Minimum 'Should' Match) 機能を使用できます