V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Drinker
V2EX  ›  Elasticsearch

分组求和的问题

  •  
  •   Drinker · 2021-06-01 13:55:05 +08:00 · 1321 次点击
    这是一个创建于 1051 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    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 也可能。

    2 条回复    2021-06-01 14:29:11 +08:00
    Mithril
        1
    Mithril  
       2021-06-01 14:13:24 +08:00
    composite aggregation 然后分页刷,具体的可以看官方文档。
    不过如果你这个查询是一个频繁操作的话,建议预先按时间段处理好。
    Drinker
        2
    Drinker  
    OP
       2021-06-01 14:29:11 +08:00
    @Mithril 好的,谢谢,我去看看相关的文档。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5532 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 01:32 · PVG 09:32 · LAX 18:32 · JFK 21:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.