版本: 6.8-7.15
简而言之,当 Elasticsearch 聚合过程中创建的桶数量超过 search.max_buckets 设置的限制时,就会出现此错误。这是为了防止内存问题而设置的保护措施。要解决此问题,你可以增加 Elasticsearch 设置中的 search.max_buckets 限制,或者优化查询以创建更少的桶。但是,在增加限制时要谨慎,因为这可能会导致内存溢出错误。另外,可以考虑使用 composite 聚合来分页聚合结果。
日志上下文 #
日志 “Trying to create too many buckets. Must be less than or equal to: [” 的类名是 MultiBucketConsumerService.java。 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解的人参考:
@Override
public void accept(int value) {
if (value != 0) {
count += value;
if (count > limit) {
throw new TooManyBucketsException("Trying to create too many buckets. Must be less than or equal to: [" + limit
+ "] but was [" + count + "]. This limit can be set by changing the [" +
MAX_BUCKET_SETTING.getKey() + "] cluster level setting."; limit);
}
}
// check parent circuit breaker every 1024 calls





