mapper_parsing_exception: mapper_parsing_exception: failed to parse field [...] of type [...]
ElasticsearchNe demek?
Bir belge indekslenirken, gönderilen alan değeri o alanın mapping'de tanımlı tipiyle uyuşmadı ve ayrıştırılamadı. Örneğin integer tanımlı bir alana metin, date tanımlı bir alana geçersiz tarih formatı gönderilmesi.
Neden olur?
Alan tipi uyumsuzluğu (sayı alanına string, tarih alanına hatalı format), beklenen date formatına uymayan tarih, bozuk/eksik JSON, dinamik olarak yanlış tiplenmiş alanlar veya nesne (object) beklenen yere skaler değer gönderilmesi.
Nasıl çözülür?
Hata mesajındaki alan adını ve beklenen tipi kontrol edin: GET /index-adi/_mapping. Gönderilen belgedeki değeri alanın tipine uygun hale getirin veya mapping'i doğru tiple yeniden tanımlayın. Tarih alanları için format parametresini belge biçimiyle eşleştirin. Var olan bir alanın tipi değiştirilemez; gerekirse yeni index oluşturup _reindex ile taşıyın. Uygulama katmanında veri doğrulaması yapın.
Aynı motorda diğer kayıtlar
- index_read_only_allow_deleteTOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block (eski: FORBIDDEN/12/index read-only / allow delete (api))
- high_disk_watermark_exceededhigh disk watermark [90%] exceeded / flood stage disk watermark [95%] exceeded
- circuit_breaking_exceptionCircuitBreakingException[[parent] Data too large, data for [<...>] would be [...], which is larger than the limit of [...]]
- strict_dynamic_mapping_exceptionstrict_dynamic_mapping_exception: mapping set to strict, dynamic introduction of [...] within [...] is not allowed
- 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
- 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)