Elasticsearch 对聚合结果集的内容排序

本文介绍了如何在Elasticsearch查询中使用top_hits功能,对根据field_name1字段进行的聚合结果集进行降序排序,同时提取特定字段以展示数据。
摘要由CSDN通过智能技术生成

Elasticsearch 对聚合结果集的内容排序

工作中遇到需要获取 elasticsearch 的数据聚合结果,然后对结果集的某个字段进行排序展示,这里要用到 top_hits

下面是实际代码

根据聚合结果,做排序,并带出需要的字段
GET index_name/_search
{
    "track_total_hits": true,
    "query": {
        "bool": {
            "must": [
                ....	// 省略了其他条件
            ]
        }
    },
    "size": 0,
    "aggs": {
        "group_by_field_name1": {
            "terms": {
                "field": "field_name1",	// 根据某个字段做聚合
                "size": 10
            },
            "aggs": {
                "top_hits": {
                    "top_hits": {
                        "size": 30,	// 再从聚合结果中获取相应的结果集数量
                        "_source": [
                            "field_name1",
                            "field_name2",
                            .....	// 需要的字段名称
                        ],
                        "sort": [
                            {
                                "field_name1": {
                                    "order": "desc"	// 然后对结果中某个字段排序
                                }
                            }	// 支持多个排序
                        ]
                    }
                }
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值