前几天在论坛看见有人针对es提了几个问题,觉得很有意思就查找资料测试了下,很有意思,写下来跟大家一起分享一下
功能就是标题描述的,关于es聚合查询(aggregations)
官文:
聚合框架有助于基于搜索查询提供聚合数据。它基于称为聚合的简单构建块,可以组合以构建复杂的数据摘要。
现在我们针对一组数据获取该数据,统计在文档中某个字段的值出现的次数
{
"size": 0,
"aggs":{
"user_count":{
"terms":{
"field":"xxxx"
}
}
}
}
我们在执行请求后会得到下面的结果:
{
"took": 23,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": xxx,
"max_score": 0,
"hits": []
},
"aggregations": {
"user_count": {
"doc_count_error_upper_bound": 104,
"sum_other_doc_count": 31733,
"buckets": [
{
"key": "xxxxxxxxxx",
"doc_count": 211
},
{
"key": "xxxxxxxx",
"doc_count": 206
},
{
"key": "xxxxxxx",
"doc_count": 192
},
{
"key": "xxxx",
"doc_count": 183
},
{
"key": "xxxx",
"doc_count": 170
},
{
"key": "xxxxxx",
"doc_count": 161
}
]
}
}
}
这样我们便可以快速的统计出想要的数据