代码之家  ›  专栏  ›  技术社区  ›  Tom

查询在es中不能包含多个子查询类型

  •  0
  • Tom  · 技术社区  · 5 年前

    PUT /lib59/_doc/1
    {
      "name": "hello",
      "value":1
    }
    
    
    GET /lib59/_search
    {
      "query":{
        "term": {
          "name":"hello"
        },
        "exists": {
          "field": "value"
        }
      }
    }
    
    

    但是当我运行它时,出现了一个错误,错误消息是:

    我想问ES是否支持我上面写的查询,如果不支持,我如何表达我的查询?谢谢。

    1 回复  |  直到 5 年前
        1
  •  2
  •   Bhavya    5 年前

    您需要使用 bool/must 条款

    {
      "query": {
        "bool": {
          "must": [
            {
              "term": {
                "name": "hello"
              }
            },
            {
              "exists": {
                "field": "value"
              }
            }
          ]
        }
      }
    }