Что это значит

Elasticsearch хранит поле типа keyword одним неделимым значением, и его длина ограничена 32766 байтами. В такое поле пришёл длинный текст, например содержимое документа. Запись этого документа отклонена, остальные индексируются.

Корень проблемы в типе поля. Текст для полнотекстового поиска должен лежать в поле типа text. Тип keyword поле получает, когда индекс создан без нужного шаблона и Elasticsearch сам угадал тип, либо когда шаблон задан неверно.

Как проверить

GET <индекс>/_mapping/field/<имя поля>

Ответ "type": "keyword" для поля с длинным текстом подтверждает причину.

Что сделать

  1. Тип существующего поля изменить нельзя. Повторная индексация в тот же индекс ошибку не уберёт.
  2. Правильный путь: создать новый индекс с верным описанием полей и перенести данные через _reindex, либо пересоздать индекс штатной процедурой системы.
  3. Если поле действительно должно быть keyword, а длинные значения можно не индексировать, добавить к нему ignore_above: длинные значения будут сохраняться без индексации, ошибка исчезнет.
  4. Проверить шаблон индексов, чтобы новый индекс снова не создался с угаданными типами.