📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 6.8-7.15

简而言之,当您尝试在 Elasticsearch 中为某个聚合添加全局子聚合时,就会出现此错误。全局聚合应该位于顶层,因为它们不与任何特定字段关联。要解决此问题,您可以删除全局子聚合或将其移动到顶层。或者,您可以用适合您数据分析需求的非全局子聚合来替换全局子聚合。

日志上下文 #

日志 “Aggregation [” + parent.name() + “] cannot have a global " + “sub-aggregation [” 类名是 GlobalAggregatorFactory.java。我们从 Elasticsearch 源代码中提取了以下内容,以便那些寻求深入上下文的人参考:

@Override
public Aggregator createInternal(Aggregator parent; CardinalityUpperBound cardinality; Mapmetadata) throws IOException {
    if (parent != null) {
        throw new AggregationExecutionException("Aggregation [" + parent.name() + "] cannot have a global " + "sub-aggregation [" + name
        + "]. Global aggregations can only be defined as top level aggregations");
    }
    if (cardinality != CardinalityUpperBound.ONE) {
        throw new AggregationExecutionException("Aggregation [" + name() + "] must have cardinality 1 but was [" + cardinality + "]");
    }