首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹性搜索中的聚合+排序+分页

问弹性搜索中的聚合+排序+分页
EN

Stack Overflow用户
提问于 2015-01-05 17:27:40
回答 8查看 41.7K关注 0票数 31

我需要在其中一个索引中执行聚合+排序+分页。

我了解了Elastic search的内部功能,

我总共有5个分片,它将对单个分片进行排序并获取结果,默认情况下,每个分片将返回10条记录。然后再对这50条记录进行排序,它将获取前10条记录,因为默认大小是10。

输出:

聚合结果被返回在名为“aggregations”的单独字段中,以便在此聚合数据中进行分页,size和.In不起作用。

我厌倦了做termBuilder.size(500),现在这个链接(http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html)的逻辑是不同的

这会导致数据的不准确。

有没有人能建议我如何处理聚合+分页。

EN

回答 8

Stack Overflow用户

发布于 2015-01-05 20:17:31

在elasticsearch中,无法对聚合进行分页。如果指定了size,查询将不会给出准确的结果。因此,进行排序和分页的唯一方法是指定大小为0并返回所有文档,然后将所有结果累加到一个列表中以供进一步操作,从而获得所需的结果。

票数 15
EN

Stack Overflow用户

发布于 2018-11-12 17:13:11

我认为Composite Aggregation可能会解决您的问题,因为它允许在聚合结果中进行分页。

请参考this doc

票数 13
EN

Stack Overflow用户

发布于 2019-03-10 09:12:45

在v6.1及更高版本中,ElasticSearch支持Bucket Sort Aggregation。它允许聚合结果中的"sort“、"size”和"from“参数。

请参考this doc

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27776582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档