--- title: "Sampler聚合必须与子聚合一起使用 – 如何解决此Elasticsearch异常" date: 2026-01-17 lastmod: 2026-01-17 description: "当在Elasticsearch中使用不带任何子聚合的sampler聚合时,会出现此错误。Sampler聚合是一种特殊类型的聚合,用于限制进一步聚合所考虑的文档数量。要解决此问题,需要向sampler聚合添加子聚合。" tags: ["聚合查询", "Sampler聚合", "异常处理"] summary: " 版本: 6.8-8.9 简要来说,当在Elasticsearch中使用不带任何子聚合的sampler聚合时,会出现此错误。Sampler聚合是一种特殊类型的聚合,用于限制进一步聚合所考虑的文档数量。要解决此问题,需要向sampler聚合添加子聚合。这可以是任何类型的聚合,例如terms、histogram或另一个sampler聚合。确保子聚合正确嵌套在sampler聚合内。 日志上下文 # 日志 “Sampler aggregation must be used with child aggregations.” 的类名是 SamplerAggregator.java. 我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人使用: } @Override protected LeafBucketCollector getLeafCollector(AggregationExecutionContext aggCtx; LeafBucketCollector sub) throws IOException { if (bdd == null) { throw new AggregationExecutionException("Sampler aggregation must be used with child aggregations."); } return bdd.getLeafCollector(aggCtx); } @Override " --- > **版本:** 6.8-8.9 简要来说,当在Elasticsearch中使用不带任何子聚合的sampler聚合时,会出现此错误。Sampler聚合是一种特殊类型的聚合,用于限制进一步聚合所考虑的文档数量。要解决此问题,需要向sampler聚合添加子聚合。这可以是任何类型的聚合,例如terms、histogram或另一个sampler聚合。确保子聚合正确嵌套在sampler聚合内。 ## 日志上下文 日志 "Sampler aggregation must be used with child aggregations." 的类名是 [SamplerAggregator.java.](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/) 我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人使用: ```java } @Override protected LeafBucketCollector getLeafCollector(AggregationExecutionContext aggCtx; LeafBucketCollector sub) throws IOException { if (bdd == null) { throw new AggregationExecutionException("Sampler aggregation must be used with child aggregations."); } return bdd.getLeafCollector(aggCtx); } @Override ```