Lucene如何使用' AND'套装错误解释?

时间:2014-04-29 17:27:11

标签: lucene

我的查询是这样的:

field1:"stuff" AND field2:"other"

当它以小写and运行时,会产生不同的结果。所以这个查询:

field1:"stuff" and field2:"other"

'和'是小写的。我使用经典QueryParser解析查询,并且在解析较低版本的'和#39;时它不会抱怨(抛出异常),但它确实会生成&# 39;更'结果。好像'和'可能是它正在寻找的标记,因此有比2个子句产生的普通查询更多的结果?

Lucene如何使用'和'套管错误解释?

仅供参考,在Java 7和Java 8上使用Lucene 4.4。

1 个答案:

答案 0 :(得分:1)

AND运算符must be uppercase。小写and将被解释为搜索词,因此生成的查询将为:

field1:"stuff" defaultfield:and field2:"other"

如果您使用StandardAnalyzer,则and一词将从搜索中删除为停用词,因此您的有效查询为:

field:"stuff" field2:"other"

相当于将两者合并为OR,而不是AND