Aggregations | Elasticsearch Reference [7.6] | Elastic
ES 中的聚合类型主要可以分为以下 4 种:
Bucketing
桶聚合。建立一批 buckets,每个 bucket 都与一个 key 和一个文档规则相关联,当聚合执行时,所有的 bucket 规则都会对上下文中的每一个文档进行评估,当一个规则匹配时,该文档被认为是 "属于 "相关的 bucket。在聚合过程结束时,我们最终会得到一个 bucket 的列表--每个 bucket都有一组 "属于 "它的文档。
Metric
数值聚合。对一组文档进行跟踪和计算度量。
Matrix
矩阵聚合。它对多个字段进行操作,并根据从请求的文档字段中提取的值产生一个矩阵结果。与汇总和桶聚合不同,这个聚合系列还不支持脚本化。
Pipeline
管道聚合。汇总其他聚合体的产出及其相关指标的聚合体。
聚合结构:
"aggregations" : {
"<aggregation_name>" : {
"<aggregation_type>" : {
<aggregation_body>
}
[,"meta" : { [<meta_data_body>] } ]?
[,"aggregations" : { [<sub_aggregation>]+ } ]?
}
[,"<aggregation_name_2>" : { ... } ]*
}
Metrics Aggregations | Elasticsearch Reference [7.6] | Elastic
POST twitter/_search?size=0
# 计算所有文档 likes 的平均值
{
"aggs":{
"avg_likes":{
"avg":{"field":"likes"}
}
}
}
# > return:
...
"aggregations" : {
"avg_likes" : {
"value" : 178.26923076923077
}
}
...
定义缺失参数,默认情况下,确实参数会被忽略,也可以通过 missing
指定缺失参数的值。
POST twitter/_search?size=0
{
"aggs":{
"avg_likes":{
"avg":{
"field":"likes",
"missing": 1
}
}
}
}