0

我正在编写查询获取名称中包含“am”或“pm”的所有文档,我的查询如下所示:(sellerName:am pm)

返回文件如下:

文档1:

  seller name:am
  city: bangalore 
  state:Kar
  country:In
  zip:560034

文档2:

          seller name:pm
          city: bang
          state:Kar
          country:In
          zip:560034

文档3:

      seller name: Ganesh
      city: bang
      state:Kar pm
      country:In
      zip:560034

前两个文件被退回,因为我们在他们的名字中有ampm,我的问题是,即使我们在Doc3的卖方名称中没有 am 或 pm,这仍然是匹配的。这是因为如果 doc3 ,我们在邮政编码中有pm 。

我不希望这个结果被退回。我怎样才能做到这一点?以及为什么它与 Doc3 匹配,即使 doc3 不包含 am 或 pm。

提前致谢。

4

2 回答 2

0

这是标准的 lucene 查询语法。

sellerName:am pm转换为sellerName:am defaultField:pm。你的默认字段可能是一个“全部”字段,或者类似的东西,我猜。

您的查询应该是: sellerName:(am pm)

于 2015-12-23T16:51:17.810 回答
0

确定向 Lucene 发送什么查询的一种非常简单的方法是发送 debugQuery=true ,它会告诉您查询是如何被解析的。

于 2016-02-24T11:45:09.273 回答