我在做直播间数据统计的问题,每个直播间有人送礼就有一条记录。
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 也可能。
1
Mithril 2021-06-01 14:13:24 +08:00
composite aggregation 然后分页刷,具体的可以看官方文档。
不过如果你这个查询是一个频繁操作的话,建议预先按时间段处理好。 |