Lucene查询中的顺序会影响结果吗?

时间:2019-04-25 02:20:57

标签: elasticsearch lucene

我在HTTP GET请求中尝试了下面的2个Lucene查询,以在我的ElasticSearch中搜索文档:

q=(Name:\"20190401_150454_992\" OR \"test video\")

q=(Name:\"test video\" OR \"20190401_150454_992\")

第一个结果仅包含此文档:

"_source": {
    "Name": "test video",
    "Latitude": 25.1062949,
    ...
}

,第二个结果包含上面的文档,和

"_source": {
    "Name": "20190401_150454_992",
    "Latitude": 0,
    ...
}

也。

我希望结果应该是相同的(它们应该在两个查询中返回 2个文档),因为我没有改变任何其他条件,除了查询字符串中查询字段的顺序,但。谁能解释为什么?谢谢!

我正在使用ElasticSearch 5.5.2。

1 个答案:

答案 0 :(得分:0)

您的问题是关于

的区别
  

q =(名称:\“测试视频\”或\“ 20190401_150454_992 \”)

  

q =(名称:\“ 20190401_150454_992 \”或\“测试视频\”)

请注意,“名称”字段仅绑定到您的第一个短语。 所以请尝试

  

q =名称:(\“测试视频\”或\“ 20190401_150454_992 \”)

因为您的查询等于

  

q =名称:\“测试视频\”或_all:\“ 20190401_150454_992 \”

为什么?因为有一个默认的搜索字段: https://www.elastic.co/guide/en/elasticsearch/reference/5.2/mapping-all-field.html#querying-all-field