You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:Spring Data Elasticsearch 5.2.6与ES-rest-client8.10嵌套聚合实现

解决Spring Data Elasticsearch 5.2.6 + Elasticsearch 8.10的嵌套聚合问题

针对你的需求,在Elasticsearch 8.x的客户端API中,子聚合需要通过嵌套聚合构建器的aggregation()方法来添加,替代了旧版的subAggregation()。以下是完整的代码实现,可直接替换你的TODO部分:

queryBuilder.withAggregation(
    AGG_ACTION_ROLE,
    AggregationBuilders.nested {
        it.path("actionRoles") // 指定嵌套字段的路径
        // 添加terms子聚合
        it.aggregation("roleNames", AggregationBuilders.terms {
            it.field("actionRoles.roleName")
            it.size(1000)
        })
    }
)

代码说明:

  • 使用AggregationBuilders.nested()创建嵌套聚合构建器,通过lambda配置path为actionRoles,完全匹配你在Kibana中验证的嵌套聚合结构。
  • 在嵌套聚合的lambda内部,调用it.aggregation()方法添加terms子聚合:
    • 第一个参数是子聚合的名称roleNames,和你目标结构中的名称对应;
    • 第二个参数是terms聚合的构建器,配置统计字段为actionRoles.roleName,并设置返回结果的数量为1000。

这段代码生成的聚合结构与你需求中的JSON完全一致,能够正确统计嵌套字段actionRoles.roleName的词频分布。

内容的提问来源于stack exchange,提问作者John Student

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 00:45:06