在查询elastic search aggregate查询时,我得到“尝试创建太多的存储桶。b必须小于或等于10000,但找到10001”。
我们如何处理这个异常呢?
发布于 2020-03-13 15:39:15
如this链接中所述,search.max_buckets
的默认限制是10000
。
设置这样的限制的全部意义在于防止一些新手用户意外地运行耗费大量时间和资源的聚合查询,这可能会导致性能问题,或者在更糟糕的情况下,导致ES节点崩溃。
但是,如果您想要更改该设置,有两种方法可以实现。
解决方案1:更改elasticsearch.yml (需要重启节点)
您需要转到集群中所有节点的elasticsearch.yml
,并在其中添加以下值:
search.max_buckets = 10500
保存文件并重新启动节点。
解决方案1:集群API (无需重启)
或者,我相信您可以使用cluster API并将设置添加到persistent cluster settings
中,如下所示:
PUT /_cluster/settings
{
"persistent": {
"search.max_buckets": 12000
}
}
由于该设置似乎是群集范围的,因此我建议使用Solution 2
。
这就是为什么你想让存储桶返回10k以上的存储桶的原因。如果您更改了设置,以便在真实环境中不会开始看到性能问题,那么也要进行彻底的测试,如果这样做了,这是您要记住的第一件事。
如果这能帮助您解决问题,请让我知道。
https://stackoverflow.com/questions/60671904
复制相似问题