too_many_buckets_exception: Trying to create too many buckets
ElasticsearchQue signifie cette erreur ?
Une requête d'agrégation a tenté de produire plus de buckets que la limite supérieure autorisée (search.max_buckets, 65,536 par défaut). La requête a été refusée pour protéger la mémoire.
Cause
Agrégations comme terms/date_histogram exécutées sur des champs à forte cardinalité avec un size très élevé ou un intervalle très fin ; agrégations imbriquées qui multiplient le nombre de buckets. La limite est imposée car une création excessive de buckets peut épuiser la mémoire du nœud.
Comment la corriger
Réduisez le nombre de buckets produits : diminuez le size des agrégations terms, élargissez l'intervalle de date_histogram, supprimez les agrégations imbriquées inutiles. Si de nombreux résultats sont nécessaires, paginez-les avec une composite aggregation. Relever la limite doit rester un dernier recours et comporte un risque mémoire : search.max_buckets peut être modifié avec PUT _cluster/settings, mais avec prudence.
Autres entrées pour ce moteur
- node_not_connected_exceptionNode is not connected
- receive_timeout_transport_exceptionRequest timed out waiting for a response from another node (délai dépassé en attendant la réponse d'un autre nœud)
- routing_missing_exceptionRouting value is required for this document (valeur de routage requise pour ce document)
- shard_lock_obtain_failed_exceptionObtaining shard lock timed out
- parsing_exceptionFailed to parse the search request / query DSL (échec de l'analyse de la requête de recherche / du query DSL)
- max_bytes_length_exceeded_exceptionDocument contains at least one immense term that is too long (le document contient au moins un terme démesuré, trop long)
- illegal_argument_exception_total_fieldsLimit of total fields has been exceeded