DBAtlas · Veritabanı operasyon atlası

illegal_argument_exception_total_fields: Limit of total fields has been exceeded

Elasticsearch

Ne demek?

Bir index'in mapping'indeki toplam alan sayısı, izin verilen üst sınırı (index.mapping.total_fields.limit, varsayılan 1000) aştı. Yeni alanlar eklenemediği için indeksleme başarısız olur.

Neden olur?

Genellikle mapping explosion: dynamic mapping açıkken, yapılandırılmamış/değişken anahtarlı JSON belgelerinin (ör. anahtarları kullanıcı verisinden gelen nesneler) her yeni alanı mapping'e eklemesi. Zamanla alan sayısı hızla artarak sınıra dayanır.

Nasıl çözülür?

Kök nedeni çözmek için değişken anahtarlı verileri flattened tipi alanla ya da nesne yerine anahtar-değer dizisiyle modelleyin; dynamic mapping'i kısıtlayın (dynamic: false ya da strict). Gerçekten daha fazla alan gerekiyorsa limiti dikkatle artırın: PUT indeks/_settings {"index.mapping.total_fields.limit": 2000}. Mapping explosion'ı izlemek için GET indeks/_mapping ile alan sayısını denetleyin.

DBAtlas'ta aç →

Aynı motorda diğer kayıtlar