--- title: "时间序列聚合不能在全局聚合中使用 – 如何解决此Elasticsearch异常" date: 2026-01-07 lastmod: 2026-01-07 description: "当您尝试在Elasticsearch的全局聚合内部使用时间序列聚合时,会出现此错误。全局聚合对所有数据进行操作,而不仅仅是指定的查询数据。时间序列聚合需要特定的时间范围。" tags: ["聚合", "时间序列聚合", "全局聚合", "异常处理"] summary: " 版本: 8.1-8.9 简而言之,当您尝试在Elasticsearch的全局聚合内部使用时间序列聚合时,会发生此错误。全局聚合对所有数据进行操作,而不仅仅是指定的查询数据。然而,时间序列聚合需要特定的时间范围。要解决此问题,您可以移除全局聚合或将时间序列聚合移到全局聚合外部。或者,您可以为全局聚合指定一个包含时间序列聚合的时间范围。 日志上下文 # 日志"Time series aggregations cannot be used inside global aggregation.“类名是 GlobalAggregatorFactory.java.我们从Elasticsearch源代码中提取了以下内容,为那些寻求深入上下文的人提供参考: AggregatorFactories.Builder subFactories; Mapmetadata ) throws IOException { super(name; context; parent; subFactories; metadata); if (subFactories.isInSortOrderExecutionRequired()) { throw new AggregationExecutionException("Time series aggregations cannot be used inside global aggregation."); } } @Override public Aggregator createInternal(Aggregator parent; CardinalityUpperBound cardinality; Mapmetadata) " --- > **版本:** 8.1-8.9 简而言之,当您尝试在Elasticsearch的全局聚合内部使用时间序列聚合时,会发生此错误。全局聚合对所有数据进行操作,而不仅仅是指定的查询数据。然而,时间序列聚合需要特定的时间范围。要解决此问题,您可以移除全局聚合或将时间序列聚合移到全局聚合外部。或者,您可以为全局聚合指定一个包含时间序列聚合的时间范围。 日志上下文 ----------- 日志"Time series aggregations cannot be used inside global aggregation."类名是[GlobalAggregatorFactory.java.](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/)我们从Elasticsearch源代码中提取了以下内容,为那些寻求深入上下文的人提供参考: ```java AggregatorFactories.Builder subFactories; Mapmetadata ) throws IOException { super(name; context; parent; subFactories; metadata); if (subFactories.isInSortOrderExecutionRequired()) { throw new AggregationExecutionException("Time series aggregations cannot be used inside global aggregation."); } } @Override public Aggregator createInternal(Aggregator parent; CardinalityUpperBound cardinality; Mapmetadata) ```