Return 来自 Elasticsearch 的单个聚合值

Return a single aggregate value from Elasticsearch

我正在处理 Elasticsearch 聚合,我想获得一个聚合所有记录值的单一值。我可以用 "Range >= 0" 聚合作弊,但是有更惯用的方法吗?

我的问题是:

{
  "size": 0,
  "aggs": { 
    "all": { 
      "range": {
        "field": "price", 
        "ranges": [{"from": 0}] }
       }
    },
    "aggs": {
      "total price": {
         "avg": {"field": "price"}}
       }
    }
}

ES 已将此内置到 "stats" 聚合中,请使用 "sum" 结果。

GET devdev/alert/_search
{
  "size": 0, 
 "aggs": {
   "ag1": {
     "stats": {
       "field": "price"
     }
   }
 }
}

结果:

{
   "took": 483,
   "timed_out": false,
   "_shards": {
      "total": 5,
      "successful": 5,
      "failed": 0
   },
   "hits": {
      "total": 4129196,
      "max_score": 0,
      "hits": []
   },
   "aggregations": {
      "ag1": {
         "count": 4119334,
         "min": -1,
         "max": 7004,
         "avg": 5.29581966405249,
         "sum": 21815250
      }
   }
}