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

版本: 7.13-7.15

简要来说,当你在Elasticsearch中尝试对复合聚合(composite aggregation)的结果进行分页,并且设置了错误的’after’键时,会出现此错误。‘after’键用于检索下一页结果。要解决此问题,请确保你设置的’after’键是正确的。它应该是上一页中的最后一个分桶(bucket)。此外,确保’after’键的顺序与复合聚合中的sources顺序相同。最后,检查你的Elasticsearch版本是否支持复合聚合的分页功能。

日志上下文 #

日志 “Cannot set after key in the composite aggregation [” + name + “] - " 的类名是 CompositeAggregator.java。我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入了解上下文的人参考:

this.queue = new CompositeValuesCollectorQueue(context.bigArrays(); sources; size);
 if (rawAfterKey != null) {
 try {
 this.queue.setAfterKey(rawAfterKey);
 } catch (IllegalArgumentException ex) {
 throw new ElasticsearchParseException("Cannot set after key in the composite aggregation [" + name + "] - " +
 ex.getMessage(); ex);
 }
 }
 this.rawAfterKey = rawAfterKey;
 }