分组求和的问题

2021-06-01 13:55:05 +08:00
 Drinker

我在做直播间数据统计的问题,每个直播间有人送礼就有一条记录。

TermsAggregationBuilder termsAggregationBuilder = AggregationBuilders.terms("roomId").field("roomId").size(10000);
SumAggregationBuilder sumAggregationBuilder = AggregationBuilders.sum("sum").field("totalPay");  termsAggregationBuilder.subAggregation(sumAggregationBuilder).subAggregation(AggregationBuilders.topHits("roomId").sort("roomId", SortOrder.ASC).size(1));

按照上面的来统计只能分出 10000 个直播间,sum 是每个直播间的送礼送额,如果不设置 size,则只会统计 10 个直播间,我知道修改 es 的配置可以支持 10000 以上,但是治标不治本,各位老哥有什么好的想法么?因为直播间可能超过 10000 个或者 100w 也可能。

1519 次点击
所在节点    Elasticsearch
2 条回复
Mithril
2021-06-01 14:13:24 +08:00
composite aggregation 然后分页刷,具体的可以看官方文档。
不过如果你这个查询是一个频繁操作的话,建议预先按时间段处理好。
Drinker
2021-06-01 14:29:11 +08:00
@Mithril 好的,谢谢,我去看看相关的文档。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/780601

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX