https://blog.csdn.net/zyc88888/article/details/83016513

聚合几种类型

1.Bucketing桶分聚合:

根据filed或者脚本将相同的数据放到一组

2.Metric:指标聚合:

对文档的指定字段进行计算 max min sum等

3.Pipeline:管道聚合

对其他聚合的结果进行聚合

聚合的语法

 
"aggregations" : {                                //定义聚合对象,也可用 "aggs"
      "<aggregation_name>" : {                    //聚合的名称,用户自定义
          "<aggregation_type>" : {                //聚合类型,比如 "histogram"
              <aggregation_body>                  //每个聚合类型都有其自己的结构定义
          }
          [,"meta" : {  [<meta_data_body>] } ]?
          [,"aggregations" : { [<sub_aggregation>]+ } ]?    //可以定义多个 sub-aggregation
      }
      [,"<aggregation_name_2>" : { ... } ]*       //定义额外的多个平级 aggregation,只有 Bucketing 类型才有意义
}

Metric聚合

group By

"aggs": {
        "depotCode": {
            "terms": {
                "size":600,//默认会聚合10个 这里设置预期最大值
                "field": "depotCode" 
            }
        }
    }

 

 

avg(avg)

配置参数

  • field:用于计算的字段
  • script:由脚本生成用来计算的 value
  • missing:文档缺省字段时的默认值

求平均值

#sql select avg(price1) from product where category=337063315819859968
{
    "size":0,
     "query":{
         "term":{
             "category":"337063315819859968"//查询指定分类产品
         }
     },
    "aggs": {
        "price_avg": {
            "avg": {
                "field": "price1"//计算平均值
            }
        }
    }
}

输出:

{
    "took": 70,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "failed": 0
    },
    "hits": {
        "total": 650241,
        "max_score": 0.0,
        "hits": []
    },
    "aggregations": {
        "price_avg": {
            "value": 48029.56151334659
        }
    }
}
View Code

相关文章:

  • 2021-10-24
  • 2022-12-23
  • 2021-07-04
  • 2022-12-23
猜你喜欢
  • 2021-11-10
  • 2021-03-17
  • 2021-07-05
  • 2021-06-29
  • 2022-01-04
  • 2022-12-23
相关资源
相似解决方案