是Lucene +经典查询搜索语法,与使用AND相同

时间:2018-07-18 09:52:47

标签: java lucene

Lucene查询形式

field1:+"term1" field2:+"term2"

似乎等同于

field1:"term1" OR field2:"term2"

我希望它等同于

field1:"term1" AND field2:"term2"

(即对于数据库查询1和2上的特定查询,它返回10条记录,而查询3返回6条记录,我希望查询2仅返回6条记录)

我知道,如果没有 OR AND ,则默认为 OR ,但我认为+表示该术语必须匹配,否则+的意义是什么 我有什么误会?

1 个答案:

答案 0 :(得分:2)

对我来说,该查询看起来并不等同于这两个查询。

field1:+"term1" field2:+"term2"

只是语法无效,标准的QueryParser确实为此踢出了ParseException(也许您的代码无声地吞没了异常?

应该是:

+field1:"term1" +field2:"term2"