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 } } }