ES支持的aggregation操作可以分为四类
Bucketing
每个bucket关联了一个key以及一个条件,所有满足条件的doc都会落入对应的bucket中
Metric
对一组doc进行指标运算
Pipeline
将其他aggregations的结果作为输入再做aggregation操作
Matrix
略(试验中)
aggregations部分的语法:
"aggs" : { "<aggregation_name>" : { "<aggregation_type>" : { <aggregation_body> } [,"meta" : { [<meta_data_body>] } ]? [,"aggregations" : { [<sub_aggregation>]+ } ]? } [,"<aggregation_name_2>" : { ... } ]* }
8.1 Metrics Aggregations
Avg 单值
POST /exams/_search?size=0 { "aggs" : { "avg_grade" : { "avg" : { "field" : "grade" } } } }
Cardinality 单值
calculates an approximate count of distinct values.
计算通过HyperLogLog++算法,是粗略值
POST /sales/_search?size=0 { "aggs" : { "type_count" : { "cardinality" : { "field" : "type" } } } }
Max/Min 单值<