使用弹性搜索聚合

Aggregation using elastic search

我的搜索查询是从我的弹性数据库中获取最新的 5000 个文档,如下所示

{ 
  "size": 5000, 
  "from": 0, 
  "query": {
        "range" : {
            "hostTimestamp" : {
                "gte" : 1499674634382,
                "lte" : 1499680034000
            }
        }
  },
  "sort": [
    {
      "hostTimestamp": {
        "order": "desc"
      }
    }
  ]
}

现在,在作为此查询结果获取的文档中,我想计算 eventSeverityAlertCritical 的文档数量。如何实现?

您可以在 eventSeverity 字段上使用 terms aggregation 来实现:

{ 
  "size": 5000, 
  "from": 0, 
  "query": {
        "range" : {
            "hostTimestamp" : {
                "gte" : 1499674634382,
                "lte" : 1499680034000
            }
        }
  },
  "sort": [
    {
      "hostTimestamp": {
        "order": "desc"
      }
    }
  ],
  "aggs": {                  <--- add this part
    "severities": {
      "terms": {
        "field": "eventSeverity"
      }
    }
  }
}