首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ES多项必查

ES多项必查
EN

Stack Overflow用户
提问于 2017-08-21 22:21:09
回答 1查看 5.4K关注 0票数 2

我想使用多个必须查询,但我得到以下错误。重复的键“必须”语法错误。结果应该是芬达和可乐。我怎样才能得到这些数据呢?

必须类似于以下结果:1:可口可乐2:芬达

代码语言:javascript
复制
  {
    "query": {
      "bool": {
        "must": [
             {
                "match": {
                  "productName":"Coca Cola"
                }
              },
              {
                "match": {
                  "productCode": "Coke"
                }
              },
              {
                "match": {
                  "created_date": "2018-06-10"
                }
              }
        ],
        "must": [
             {
                "match": {
                  "productName":"Fanta"
                }
              },
              {
                "match": {
                  "productCode": "Coke"
                }
              },
              {
                "match": {
                  "created_date": "2018-06-05"
                }
              }
        ]
      }
    }
  }

在mysql中:

SELECT * FROM products WHERE (name='Coca Cola‘and code='Coke'...)或者(name='Fanta'...)

EN

回答 1

Stack Overflow用户

发布于 2017-08-21 22:33:58

您需要将两个must (即AND)都包装在一个should (即OR)中,如下所示:

代码语言:javascript
复制
{
  "query": {
    "bool": {
      "should": [
        {
          "bool": {
            "must": [
              {
                "match": {
                  "productName": "Coca Cola"
                }
              },
              {
                "match": {
                  "productCode": "Coke"
                }
              },
              {
                "match": {
                  "created_date": "2018-06-10"
                }
              }
            ]
          }
        },
        {
          "bool": {
            "must": [
              {
                "match": {
                  "productName": "Fanta"
                }
              },
              {
                "match": {
                  "productCode": "Coke"
                }
              },
              {
                "match": {
                  "created_date": "2018-06-05"
                }
              }
            ]
          }
        }
      ]
    }
  }
}
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45799479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档