illegal_argument_exception_fielddata: illegal_argument_exception: Fielddata is disabled on text fields by default. Set fielddata=true on [your_field] in order to load fielddata in memory
ElasticsearchNe demek?
Analiz edilen (analyzed) bir text alanı üzerinde aggregation, sorting veya scripting yapılmaya çalışıldı. Text alanlarda bu işlemler bellekte pahalı fielddata gerektirdiğinden varsayılan olarak kapalıdır.
Neden olur?
Bir text alanına doğrudan agregasyon/sıralama uygulanması. Elasticsearch'te tam metin arama için text, tam-değer agregasyon/sıralama için keyword tipi kullanılır; ikisi karıştırıldığında bu hata çıkar.
Nasıl çözülür?
Agregasyon/sıralama için alanın keyword alt-alanını kullanın (ör. "my_field.keyword"). Alan yalnızca text ise mapping'e bir keyword alt-alanı ekleyin (multi-field) ve _reindex yapın. Fielddata'yı text alanda açmak (fielddata=true) mümkündür ama yüksek bellek tüketimi ve circuit breaker riski nedeniyle önerilmez; yalnızca zorunlu durumlarda kullanın.
Aynı motorda diğer kayıtlar
- circuit_breaking_exceptionCircuitBreakingException[[parent] Data too large, data for [<...>] would be [...], which is larger than the limit of [...]]
- mapper_parsing_exceptionmapper_parsing_exception: failed to parse field [...] of type [...]
- strict_dynamic_mapping_exceptionstrict_dynamic_mapping_exception: mapping set to strict, dynamic introduction of [...] within [...] is not allowed
- search_phase_execution_exceptionsearch_phase_execution_exception: all shards failed / Failed to execute phase [query]
- too_many_clausestoo_many_clauses: maxClauseCount is set to 1024 (query contains too many clauses)
- version_conflict_engine_exceptionversion_conflict_engine_exception: [_doc][id]: version conflict, current version [x] is different than the one provided [y] (HTTP 409)
- document_missing_exceptiondocument_missing_exception: [_doc][id]: document missing