表单的 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 但我认为 + 意味着该术语必须匹配,否则 + 的意义何在 我误会了什么?
最佳答案
在我看来,该查询与其中任何一个都不等同。
field1:+"term1" field2:+"term2"
只是无效的语法,标准的 QueryParser 确实会为它踢出一个 ParseException
(也许您的代码正在默默地吞下异常或其他什么?)。
应该是:
+field1:"term1" +field2:"term2"
关于java - Lucene + 经典查询搜索语法与使用 AND 相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51398936/