too_many_buckets_exception: Trying to create too many buckets
ElasticsearchЧто это значит?
Запрос агрегации попытался создать больше корзин (buckets), чем допускает верхний лимит (search.max_buckets, по умолчанию 65,536). Запрос отклонён для защиты памяти.
Почему возникает?
Агрегации, такие как terms/date_histogram, выполняются по полям с высокой кардинальностью с очень большим size или очень мелким интервалом; вложенные агрегации умножают число корзин. Лимит применяется, так как чрезмерное создание корзин может исчерпать память узла.
Как исправить
Уменьшите число создаваемых корзин: снизьте size агрегаций terms, увеличьте интервал date_histogram, уберите ненужные вложенные агрегации. Если нужно много результатов, получайте их постранично с помощью агрегации composite. Повышение лимита должно быть крайней мерой и несёт риск для памяти: search.max_buckets можно изменить через PUT _cluster/settings, но делайте это осторожно.
Ещё по этой СУБД
- node_not_connected_exceptionNode is not connected
- receive_timeout_transport_exceptionRequest timed out waiting for a response from another node
- routing_missing_exceptionRouting value is required for this document
- shard_lock_obtain_failed_exceptionObtaining shard lock timed out
- parsing_exceptionFailed to parse the search request / query DSL
- max_bytes_length_exceeded_exceptionDocument contains at least one immense term that is too long
- illegal_argument_exception_total_fieldsLimit of total fields has been exceeded