Elasticsearch查询使用'术语'并且'失踪'在同一时间

时间:2016-12-18 23:44:32

标签: json elasticsearch

我正在尝试使用此查询来获取处于已关闭或待处理状态或根本没有状态的所有文档。但此查询始终不返回任何内容。

"query": {
    "bool": {
        "should": [
            "terms": {
                "status": ["closed","pending"]
            },
            "missing":{
                "field":"status"
            }
        ]
    }
}

单独查询正在运行。如果我使用: "query": { "bool": { "should": [ "terms": { "status": ["closed","pending"] } ] } }

然后返回2个文件。

如果我使用

"query": {
    "bool": {
        "should": [               
            "missing":{
                "field":"status"
            }
        ]
    }
}

它返回3.

这些结果对于每个查询都是正确的。我只想组合2个查询并获得结果5.第一个查询有什么问题?

1 个答案:

答案 0 :(得分:2)

此ES 5.0查询,它应该适用于版本2.0

POST es1/example/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "terms": {
            "status": [
              "closed",
              "pending"
            ]
          }
        },
        {
          "bool": {
            "must_not": [
              {
                "exists": {
                  "field": "status"
                }
              }
            ]
          }
        }
      ]
    }
  }
}