edismaxクエリ パーサーを使用して、 Solr 4.10.3サーバーに対するユーザー クエリを処理します。
q.opパラメーターをANDに設定し、 mmパラメーターを完全に無効にして、100% の一致のみをヒットするようにしました。
ユーザーが 1 つのフィールドで複数の用語を検索すると、すべて正常に機能します。
たとえば、クエリfood:(beer cola Pizza)は、予期される動作である field foodのすべての用語beer、cola、およびPizzaを含むドキュメントのみを返します。
しかし、ユーザーが複数のフィールドで検索すると、Solr はq.op構成を忘れているようで、パラメーターがORに設定されているかのように動作します。
たとえば、クエリfood:(beer cola Pizza) AND color:(green yellow blue)は、フィールドfoodに単語beer、cola OR ピザのいずれかを含むすべてのドキュメントと、単語green、yellow ORのいずれかを含むドキュメントを返します。予想される動作ではないフィールドの色の青。
回避策は、次のように+ 演算子を使用して各用語を明示的に準備することです: food:(+beer +cola +pizza) AND color:(+green +yellow +blue)。
しかし、この演算子を Java-webapplication に追加する必要があります。これは一種の「ハード コード」機能です。ユーザーがq.op演算子をORに戻すことを決定した場合、ハードコードされた+が問題を引き起こすと思います。
構成によって期待される検索結果に到達する方法はありますか?