图灵编程

用Elasticsearch实现统计排行榜

2019-02-25  本文已影响2人  jack_jt_z

前几天在论坛看见有人针对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
                }
            ]
        }
    }
}

这样我们便可以快速的统计出想要的数据

上一篇 下一篇

猜你喜欢

热点阅读