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

如何使用ElasticRestHighLevelClient构建含Partition过滤的Terms聚合查询

在RestHighLevelClient中为Terms聚合添加分区过滤配置

没问题,我来帮你搞定这个配置!你需要用Elasticsearch Java API提供的PartitionInclude类来构建DSL里的分区过滤规则,以下是修改后的完整代码:

import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.bucket.terms.PartitionInclude;
import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;

// 构建带分区过滤的terms聚合
TermsAggregationBuilder aggregationBuilder = AggregationBuilders
    .terms("expired_sessions") // 对应目标DSL中的聚合名称
    .field("account_id")       // 对应目标DSL中的字段名
    .include(new PartitionInclude(0, 20)) // 添加分区配置:partition=0,num_partitions=20
    .size(10000);

关键细节说明:

  • PartitionInclude的构造函数参数顺序就是(partition, num_partitions),和你需要的DSL字段完全对应;
  • 注意调整聚合名称和字段名和目标DSL保持一致(你原代码里的CONTACT_ID需要改成expired_sessions和account_id,否则生成的查询和目标DSL不匹配);
  • 调用.include()方法传入PartitionInclude实例后,会自动生成你需要的"include": {"partition": 0, "num_partitions": 20}配置块。

内容的提问来源于stack exchange,提问作者Mahdi Mohammadizadeh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 15:04:05