SOLR 4.0 で検索してフレーズ クエリを実行しようとすると、少し問題が発生します。
「idx_text_general_ci」というフィールドがあります。これは、すべてのフィールドで構成される大文字と小文字を区別しない (すべて小文字の) フィールドです。
フレーズ(マリンフィッター)を検索しようとすると、SOLRはフレーズを2つの単語に分割する代わりにフレーズの検索を拒否します-
/select?defType=edismax&q=idx_text_general_ci:marine%20fitter&debugQuery=true
debugQuery=true 以下の出力:
<lst name="debug">
<str name="rawquerystring">idx_text_general_ci:marine fitter</str>
<str name="querystring">idx_text_general_ci:marine fitter</str>
<str name="parsedquery">
(+(idx_text_general_ci:marine DisjunctionMaxQuery((id:fitter))))/no_coord
</str>
<str name="parsedquery_toString">+(idx_text_general_ci:marine (id:fitter))</str>
上記のように、クエリが 2 つの部分 (idx_text_general_ci:marine と id:fitter) に分割されます。
私が抱えている問題は、idx_text_general_ci フィールドに 2 回出現する「marine fitter」に完全に一致するにもかかわらず、「marine」という単語が 3 回出現するドキュメントよりも低いスコアでランク付けされていることです。私のSOLRが期待どおりにフレーズでフィールドを検索した場合、これは当てはまらないことを私は知っています。
フレーズを引用符で囲むと、結果はゼロになります。
正しい方向への助けやナッジは大歓迎です。
前もって感謝します
アレックス