首页 > 解决方案 > es中可以查询包含多子查询类型吗

问题描述

我有以下简单的代码片段。我想查询包含 value 字段并且名称为 hello 的文档,

PUT /lib59/_doc/1
{
  "name": "hello",
  "value":1
}


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

但是当我运行它时,出现错误,错误信息是:

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

标签: elasticsearch

解决方案


您需要使用bool/must子句组合您的查询

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

推荐阅读