ES聚合aggs入门

Elasticsearch是一款功能强大的开源软件,不仅可以检索排序,还可以对文档进行更复杂的操作–聚合。

单值聚合

Sum求和

1
2
3
4
5
6
7
8
9
10
{
"size": 0,
"aggs": {
"return_balance": {
"sum": {
"field": "balance"
}
}
}
}

返回balance之和,其中size=0 表示不需要返回参与查询的文档。

Min求最小值

1
2
3
4
5
6
7
8
9
10
{
"size": 0,
"aggs": {
"return_min_balance": {
"min": {
"field": "balance"
}
}
}
}

返回结果:

Max求最大值

1
2
3
4
5
6
7
8
9
10
{
"size": 0,
"aggs": {
"return_max_balance": {
"max": {
"field": "balance"
}
}
}
}

返回结果:

AVG求平均值

1
2
3
4
5
6
7
8
9
10
{
"size": 0,
"aggs": {
"return_avg_balance": {
"avg": {
"field": "balance"
}
}
}
}

返回结果:

Cardinality 求基数

如下示例,查找性别的基数 M、F,共两个

1
2
3
4
5
6
7
8
9
10
{
"size": 0,
"aggs": {
"return_cardinality": {
"cardinality": {
"field": "gender"
}
}
}
}

结果为:

多值聚合

percentiles 求百分比

查看官方文档时候,没看懂,下面是自己测试时的例子,按照性别(F,M)查看工资范围的百分比

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"size": 0,
"aggs": {
"states": {
"terms": {
"field": "gender"
},
"aggs": {
"banlances": {
"percentile_ranks": {
"field": "balance",
"values": [
20000,
40000
]
}
}
}
}
}

结果:

stats 统计

查看balance的统计情况:

1
2
3
4
5
6
7
8
9
10
{
"size": 0,
"aggs": {
"balance_stats": {
"stats": {
"field": "balance"
}
}
}
}

返回结果:

extended_stats 扩展统计

1
2
3
4
5
6
7
8
9
10
{
"size": 0,
"aggs": {
"balance_stats": {
"extended_stats": {
"field": "balance"
}
}
}
}

结果:

更加复杂的查询,后续慢慢在实践中道来。


ES聚合aggs入门
https://leehoward.cn/2019/10/16/ES聚合aggs入门 /
作者
lihao
发布于
2019年10月16日
许可协议