我正在编写查询获取名称中包含“am”或“pm”的所有文档,我的查询如下:(卖方名称:上午)。
退回文件如下:
doc1:
seller name:am
city: bangalore
state:Kar
country:In
zip:560034
doc2:
seller name:pm
city: bang
state:Kar
country:In
zip:560034
doc3:
seller name: Ganesh
city: bang
state:Kar pm
country:In
zip:560034
由于我们的名字中有上午或下午,因此返回前两个文件, 我的问题是,即使我们没有在 Doc3 的卖家名称中使用am或pm,但这仍然是匹配。 这是因为如果是doc3,我们在 zip 代码中有 pm 。
我不希望这样返回。我怎样才能做到这一点?以及为什么它与Doc3匹配,即使doc3不包含am或pm。
提前致谢。
答案 0 :(得分:0)
这是标准的lucene查询语法。
sellerName:am pm
转换为sellerName:am defaultField:pm
。我猜你的默认字段可能是"all" field,或类似的东西。
您的查询应为:sellerName:(am pm)
答案 1 :(得分:0)
确定向Lucene发送什么查询的一种非常简单的方法是发送debugQuery = true,它会告诉您如何解析查询。