too_many_clauses: too_many_clauses: maxClauseCount is set to 1024 (query contains too many clauses) (la requête contient trop de clauses)
ElasticsearchQue signifie cette erreur ?
Une requête a dépassé le nombre maximal autorisé de clauses Lucene. En ES 8.x, cette limite n'est pas fixe ; elle est calculée automatiquement à partir de la taille du heap du nœud et du nombre de threads de recherche (elle peut descendre à 1024 sur les nœuds à petit heap), et le message d'erreur indique la valeur actuelle. Les très grandes requêtes bool et les requêtes qui s'étendent à de nombreux termes la déclenchent.
Cause
Requêtes bool générées par programme avec des milliers de clauses should/must ; requêtes wildcard/prefix/fuzzy/query_string s'étendant à de nombreux termes ; structures bool profondément imbriquées. Remarque : la requête terms (une liste de valeurs sur un seul champ) n'est pas soumise à cette limite ; son plafond est index.max_terms_count (65,536 par défaut).
Comment la corriger
Simplifiez la requête : convertissez de nombreuses clauses term sur un même champ en une seule requête terms (ou un terms lookup pour les grandes listes). Utilisez des types de requêtes plus spécifiques ou des champs index_prefixes/keyword au lieu de wildcard/prefix. En ES 8.x, le paramètre indices.query.bool.max_clause_count est déprécié et ignoré ; le moyen de relever la limite est d'augmenter le heap du nœud. Revoyez la logique de génération des requêtes.
Autres entrées pour ce moteur
- strict_dynamic_mapping_exceptionstrict_dynamic_mapping_exception: mapping set to strict, dynamic introduction of [...] within [...] is not allowed (mapping strict ; nouveau champ non autorisé)
- illegal_argument_exception_fielddataillegal_argument_exception: Fielddata is disabled on text fields by default. Set fielddata=true on [your_field] in order to load fielddata in memory (fielddata désactivé par défaut sur les champs text)
- search_phase_execution_exceptionsearch_phase_execution_exception: all shards failed / Failed to execute phase [query] (échec de la recherche sur tous les shards)
- version_conflict_engine_exceptionversion_conflict_engine_exception: [_doc][id]: version conflict, current version [x] is different than the one provided [y] (HTTP 409) (conflit de version du document)
- document_missing_exceptiondocument_missing_exception: [_doc][id]: document missing (document introuvable)
- index_not_found_exceptionindex_not_found_exception: no such index [index_name] (HTTP 404) (index introuvable)
- resource_already_exists_exceptionresource_already_exists_exception: index [index_name/uuid] already exists (HTTP 400) (l'index existe déjà)