Lucene查询中的顺序是否会影响结果?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lucene查询中的顺序是否会影响结果?相关的知识,希望对你有一定的参考价值。
我在HTTP GET请求中尝试了下面的2个Lucene查询,以搜索我的ElasticSearch中的文档:
q=(Name:"20190401_150454_992" OR "test video")
和
q=(Name:"test video" OR "20190401_150454_992")
第1个结果仅包含此文档:
"_source": {
"Name": "test video",
"Latitude": 25.1062949,
...
}
第二个结果包含上面的文档,和
"_source": {
"Name": "20190401_150454_992",
"Latitude": 0,
...
}
也。
我期望结果应该是相同的(它们应该返回两个查询中的2个文档),因为我没有更改任何其他条件,除了查询字符串中的查询字段的顺序,但它们不是。谁有人解释为什么?谢谢!
我正在使用ElasticSearch 5.5.2。
答案
你的问题是关于它的区别
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
以上是关于Lucene查询中的顺序是否会影响结果?的主要内容,如果未能解决你的问题,请参考以下文章