lucene の AND (&&)、OR (||)、および NOT (!) 演算子は、それぞれ REQUIRED、OPTIONAL、および EXCLUDE の短縮形であることを理解しています。そのため、それらをブール演算子として扱うことはできません (ブール代数に従う)。
次のように、単純なOR式を作成しようとしています
q = +(フィールド1:値1 OR フィールド2:値2)
field1 または field2 のいずれかで一致します。ただし、OR はオプションであり、field1:value1 と field2:value2 の両方が一致するドキュメントであるため、クエリは両方の句で一致するスコアを返します。
このコンテキストで短絡を強制するにはどうすればよいですか? 言い換えれば、ブール代数のようにショートサーキットを実装する方法です。ビ || A が true の場合、C は、B または C が true であるかどうかを調べずに true を返します。