too_many_buckets_exception: Trying to create too many buckets
ElasticsearchNe demek?
Bir toplama (aggregation) sorgusu, izin verilen üst sınırdan (search.max_buckets, varsayılan 65.536) daha fazla bucket üretmeye çalıştı. Bellek korunması için sorgu reddedildi.
Neden olur?
Yüksek kardinaliteli alanlarda terms/date_histogram gibi toplamaların çok büyük boyutta (size) ya da çok ince aralıkla çalıştırılması; iç içe (nested) toplamaların bucket sayısını çarpması. Aşırı bucket üretimi düğüm belleğini tüketebileceğinden sınır uygulanır.
Nasıl çözülür?
Üretilen bucket sayısını azaltın: terms toplamalarında size değerini düşürün, date_histogram aralığını genişletin, gereksiz iç içe toplamaları kaldırın. Çok sonuç gerekiyorsa composite aggregation ile sayfalama (paging) kullanın. Sınırı yükseltmek son çare olmalıdır ve bellek riski taşır: PUT _cluster/settings ile search.max_buckets değiştirilebilir ancak dikkatli olun.
Aynı motorda diğer kayıtlar
- 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