我知道 lucene 的 AND (&&)、OR (||) 和 NOT (!) 运算符分别是 REQUIRED、OPTIONAL 和 EXCLUDE 的简写,这就是为什么不能将它们视为布尔运算符(遵守布尔代数)。
我一直在尝试构造一个简单的OR表达式,如下
q = +(字段 1:值 1 或字段 2:值 2)
在 field1 或 field2 上匹配。但是由于 OR 只是一个可选的,其中 field1:value1 和 field2:value2 都匹配的文档,查询返回一个分数,导致两个子句都匹配。
在这种情况下如何强制短路?换句话说,如何在布尔代数中实现短路,其中表达式 A || 乙 || 如果 A 为真,则 C 返回真,甚至不考虑 B 或 C 是否为真。