DBAtlas · Veritabanı operasyon atlası

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

Elasticsearch

Ne 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.

DBAtlas'ta aç →

Aynı motorda diğer kayıtlar