计算Elasticsearch

时间:2016-06-20 18:56:04

标签: elasticsearch aggregation

如何编写单个Elasticsearch查询,该查询将计算有多少文档具有字段值或缺少该字段?

此查询成功统计了文字缺少字段:

POST localhost:9200//<index_name_here>/_search
{
    "size": 0,
    "aggs" : {
        "Missing_Field" : {
            "missing": { "field": "group_doc_groupset_id" }
        }
    }
}

此查询执行相反的操作,计算文档不缺少字段:

POST localhost:9200//<index_name_here>/_search
{
    "size": 0,
    "aggs" : {
        "Not_Missing_Field" : {
            "exists": { "field": "group_doc_groupset_id" }
        }
    }
}

我如何写一个结合两者的?例如,这会产生语法错误:

POST localhost:9200//<index_name_here>/_search
{
    "size": 0,
    "aggs" : {
        "Missing_Field_Or_Not" : {
            "missing": { "field": "group_doc_groupset_id" },
            "exists": { "field": "group_doc_groupset_id" }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

GET indexname/_search?size=0
{
  "aggs": {
    "a1": {
      "missing": {
        "field": "status"
      }
    },
    "a2": {
      "filter": {
        "exists": {
          "field": "status"
        }
      }
    }
  }
}