値を含むインデックスがありabc
、def
アナライザーの既定のフィールドにあり、2 つの異なるドキュメントに属しています。クエリを実行するabc OR def
と、インデックス内の両方のドキュメントにヒットします。しかし、使用するabc OR d?f
と、 を含むドキュメントに対してのみヒットしますabc
。でインデックスをクエリすると、d?f
を含むドキュメントがヒットしますdef
。
解析されたクエリabc OR d?f
を見ると、正しい結果が表示されます。つまり、2 番目の句として aBooleanQuery
を持つ a が解析されます。WildcardQuery
私は何か間違ったことをしていますか?
私のアプリケーションでは、上記で指定したものの上に別のブール句もあります。これは、上で指定されたものとは異なるフィールドに一致します。したがって、私の場合の完全なクエリは次のようになりますuser:john AND (abc OR d?f)
。しかし、インデックス内のすべてのドキュメントにはフィールドが含まjohn
れていuser
ます。だから、それは問題ではありません。
ルセン 3.0.3 を使用しています。
編集: luke
を使用してインデックスを確認しました。そこで、書き直されたクエリで、用語が に置き換えられていることがわかりました。クエリが一致するのは明らかであることを知っている. しかし、クエリを書き直すときにワイルドカード用語が置き換えられるのはなぜでしょうか?d?f
()
abc