Мы использовали ElasticSearch 6.X, развернутый на моем собственном сервере. Мы недавно мигрировали в облаке. Таким образом, используется версия 7.X. У нас огромный запрос с агрегатами, который работал на 6.X, но этот запрос больше не работает. Это происходит из-за критических изменений между версиями.
https://www.elastic.co/guide/en/elasticsearch/reference/current/breaking-changes-7.0.html#breaking_70_aggregations_changes
search.max_buckets в кластере settingedit Динамический c кластерный параметр с именем search.max_buckets теперь по умолчанию 10 000 (вместо неограниченного в предыдущей версии). Запросы, которые пытаются вернуть больше лимита, завершатся с ошибкой.
Поэтому, когда мы выполняем запрос с агрегатами, у нас возникает исключение:
"type" : "search_phase_execution_exception",
"reason" : "all shards failed",
"phase" : "query",
"grouped" : true,
"failed_shards" : [
{
"shard" : 0,
"index" : "xxxxxxx",
"node" : "xxxxxxxxxxxxxxxx",
"reason" : {
"type" : "too_many_buckets_exception",
"reason" : "Trying to create too many buckets. Must be less than or equal to: [10000] but was [10001]. This limit can be set by changing the [search.max_buckets] cluster level setting.",
"max_buckets" : 10000
}
}
У нас нет время изменить запрос, так как мы можем настроить параметр в ElasticCloud? Или я могу добавить параметр в запрос?
Спасибо за вашу помощь.