max_bytes_length_exceeded_exception: Document contains at least one immense term that is too long
ElasticsearchWas bedeutet das?
In einem zu indizierenden Dokument hat ein Term (insbesondere ein Wert eines keyword-/nicht analysierten Felds) die maximal erlaubte Bytelänge (32766 Bytes) überschritten. Lucene kann einen so langen Term nicht indizieren.
Ursache
Ein sehr langer Textwert wird (als Ganzes) in ein keyword-Feld geschrieben; z. B. ein vollständiger Dokumentinhalt, base64-Daten oder eine lange URL/Kennung in einem keyword-Feld. Da keyword-Felder nicht analysiert werden, wird der Wert als einzelner Term indiziert und überschreitet das Limit.
Lösung
Verwende für langen Text ein text-Feld (analysiert); keyword ist nur für kurze Werte gedacht, die exakt übereinstimmen müssen. Um den Wert zu begrenzen, nutze ignore_above im Mapping (längere Werte werden nicht indiziert, aber weiterhin gespeichert). Werden sehr lange Felder nicht benötigt, setze sie auf index:false. Bewerte das Felddesign (text vs. keyword) anhand des Datentyps neu.
Weitere Einträge zu dieser Datenbank
- too_many_buckets_exceptionTrying to create too many buckets
- shard_lock_obtain_failed_exceptionObtaining shard lock timed out
- parsing_exceptionFailed to parse the search request / query DSL
- illegal_argument_exception_total_fieldsLimit of total fields has been exceeded
- verification_exceptionverification_exception: Found N problem(s) — Unknown column / Unknown index (ES|QL, SQL, EQL)
- bind_transport_exceptionbind_transport_exception (Address already in use)
- translog_corrupted_exceptiontranslog_corrupted_exception