平均值聚合
1 2 3 4 5 6 7 8 9 10 11
| GET /index/type/_search { "size": 0, "aggs": { "test_avg": { "avg": { "field": "field1" } } } }
|
对于缺失统计字段的数据,默认情况下聚合时会被忽略。可以通过设置missing
参数,给缺失统计字段的数据一个默认值进行聚合统计。
1 2 3 4 5 6 7 8 9 10 11 12
| GET /index/type/_search { "size": 0, "aggs": { "test_avg": { "stats": { "field": "field1", "missing": 0 } } } }
|
基数聚合
统计某字段唯一值得个数,相当于SQL中的SELECT COUNT(DISTINCT field1) FROM xxx
。
1 2 3 4 5 6 7 8 9 10 11
| GET /index/type/_search { "size": 0, "aggs": { "test_cardinality": { "cardinality": { "field": "field1" } } } }
|
对于缺失统计字段的数据,默认情况下聚合时会被忽略。可以通过设置missing
参数,给缺失统计字段的数据一个默认值进行聚合统计。
1 2 3 4 5 6 7 8 9 10 11 12
| GET /index/type/_search { "size": 0, "aggs": { "test_cardinality": { "cardinality": { "field": "field1", "missing": "N/A" } } } }
|
基数聚合的值并不是一个绝对的准确值,而是一个近似计数。由于es统计到高基数集时需要占用大量的内存,且各个节点之间的沟通也会占用大量的集群资源,因此效率较低。参数precision_threshold
允许es为了基数统计的准确性而设置交换内存,实际的基数统计值低于precision_threshold
则基数将接近准确,高于该值计数会更模糊,最大值为40000,默认值为3000。
最大值聚合
1 2 3 4 5 6 7 8 9 10 11
| GET /index/type/_search { "size": 0, "aggs": { "test_max": { "max": { "field": "field1" } } } }
|
最小值聚合
1 2 3 4 5 6 7 8 9 10 11
| GET /index/type/_search { "size": 0, "aggs": { "test_min": { "min": { "field": "field1" } } } }
|
和聚合
1 2 3 4 5 6 7 8 9 10 11
| GET /index/type/_search { "size": 0, "aggs": { "test_sum": { "sum": { "field": "field1" } } } }
|
值计数聚合
值计数聚合对聚合文档中提取的值进行计数,通常该聚合与其他单值聚合一起使用,例如计算平均聚合时,统计有多少个值参与了平均聚合。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| GET /index/type/_search { "size": 0, "aggs": { "test_avg": { "avg": { "field": "field1" } }, "test_value_count": { "value_count": { "field": "field1" } } } }
|
统计聚合
统计聚合是多个单值聚合的汇总,包含:最小值、最大值、和、计数、平均值。
1 2 3 4 5 6 7 8 9 10 11
| GET /index/type/_search { "size": 0, "aggs": { "test_stats": { "stats": { "field": "field1" } } } }
|
百分比聚合
1 2 3 4 5 6 7 8 9 10 11
| GET /index/type/_search { "size": 0, "aggs": { "test_percentiles": { "percentiles": { "field": "field1" } } } }
|
默认情况下,百分比指标会计算一系列百分比:1、5、25、50、75、95、99,也可以自定义需要计算的百分比。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| GET /index/type/_search { "size": 0, "aggs": { "test_percentiles": { "percentiles": { "field": "price", "percents": [ 1, 5, 25, 50, 75, 95, 99 ] } } } }
|
百分比分级聚合
计算测试值低于指定值得百分比。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| GET /index/type/_search { "size": 0, "aggs": { "test_percentile_ranks": { "percentile_ranks": { "field": "field1", "values": [ 10, 20 ] } } } }
|