在多个字段中搜索多个值

new9mtju  于 2021-06-15  发布在  ElasticSearch
关注(0)|答案(1)|浏览(473)

我正在尝试检索在任何shipping\u addr*字段中具有任何值(法国)或(世界范围)或(世界范围)的文档,但我需要对每个文档计数一次,即使文档中存在多个匹配项。我的方向对吗?
一般来说,我应该阅读/搜索什么来理解在几个匹配情况下的计数命中逻辑?

GET /data/_search
 {
     "query": {
     "bool": {
     "must": [
         {
         "query_string": {
         "default_field": "shipping_addr*",
         "query": "(France) OR (worldwide) OR (world wide)"
         }
         }
     ]
     }
 }
 }
jljoyd4f

jljoyd4f1#

您应该使用explain api来了解特定搜索查询是如何工作的,以及某些文档是如何匹配或不匹配的。
关于你的第一点,我不清楚你到底想要实现什么,你应该总是添加一些例子来说明清楚,但是你可以看看布尔查询,它是用来解决这个问题的,我猜你正在寻找 should 相当于 OR .
而不是 query string 我建议您使用布尔查询,它在语法上不太严格,在官方文档中也有建议
如果不需要支持查询语法,请考虑使用匹配查询。如果您需要查询语法的特性,请使用简单的\u查询\u字符串查询,它不太严格。

相关问题