max_bytes_length_exceeded_exception: Document contains at least one immense term that is too long
ElasticsearchЧто это значит?
В индексируемом документе терм (особенно значение поля keyword/неанализируемого поля) превысил максимально допустимую длину в байтах (32766 байт). Lucene не может проиндексировать такой длинный терм.
Почему возникает?
Очень длинное текстовое значение, записанное в поле keyword (целиком); например, всё тело документа, данные base64 или длинный URL/идентификатор в поле keyword. Поскольку поля keyword не анализируются, значение индексируется как один терм и превышает лимит.
Как исправить
Для длинного текста используйте поле text (анализируемое); keyword предназначен только для коротких значений, требующих точного совпадения. Чтобы ограничить значение, используйте ignore_above в маппинге (значения длиннее не индексируются, но по-прежнему хранятся). Если не нужно, задайте для очень длинных полей index:false. Пересмотрите проект полей (text или keyword) с учётом типа данных.
Ещё по этой СУБД
- 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