DBAtlas · Veritabanı operasyon atlası

max_bytes_length_exceeded_exception: Document contains at least one immense term that is too long

Elasticsearch

Ne demek?

İndekslenmeye çalışılan bir belgede, bir terim (özellikle keyword/analiz edilmemiş bir alan değeri) izin verilen maksimum bayt uzunluğunu (32766 bayt) aştı. Lucene bu kadar uzun bir terimi indeksleyemez.

Neden olur?

Çok uzun bir metin değerinin keyword tipi bir alana (tam metin olarak) yazılması; ör. tüm bir belge gövdesinin, base64 verinin ya da uzun bir URL/kimliğin keyword alanına konması. keyword alanları analiz edilmediğinden değer tek bir terim olarak indekslenir ve sınırı aşar.

Nasıl çözülür?

Uzun metin için text tipi (analiz edilen) alan kullanın; keyword yalnızca kısa, tam eşleşme gereken değerler içindir. Değeri kısaltmak istiyorsanız mapping'de ignore_above ayarını kullanın (bu uzunluğu aşan değerler indekslenmez ama saklanır). Gerekmiyorsa çok uzun alanları index:false yapın. Alan tasarımını (text vs keyword) veri türüne göre yeniden değerlendirin.

DBAtlas'ta aç →

Aynı motorda diğer kayıtlar