strict_dynamic_mapping_exception: strict_dynamic_mapping_exception: mapping задан как strict, динамическое добавление [...] внутри [...] не допускается
ElasticsearchЧто это значит?
Поскольку mapping индекса или объекта задан как "dynamic": "strict", документ с новым полем, не определённым в mapping, был отклонён. Строгий режим не позволяет молча добавлять поля вне схемы.
Почему возникает?
В документе отправлено поле, отсутствующее в mapping (опечатка, новое поле, неожиданное поле), при mapping с dynamic:strict. Обычно это намеренная защита для строгого контроля схемы.
Как исправить
Исправьте или удалите лишнее/ошибочно названное поле в документе. Если поле действительно нужно, сначала добавьте его в mapping: PUT /index-name/_mapping {"properties": {"new_field": {"type": "..."}}}. Если нужно, чтобы новые поля добавлялись автоматически, задайте dynamic значение "true", или "false", если они должны храниться, но не индексироваться. Используйте строгий режим осознанно, чтобы сохранять дисциплину схемы.
Ещё по этой СУБД
- high_disk_watermark_exceededПревышен high disk watermark [90%] / превышен flood stage disk watermark [95%]
- circuit_breaking_exceptionCircuitBreakingException[[parent]]: данные слишком велики, данные для [<...>] составили бы [...], что превышает лимит [...]
- mapper_parsing_exceptionmapper_parsing_exception: не удалось разобрать поле [...] типа [...]
- illegal_argument_exception_fielddataillegal_argument_exception: fielddata по умолчанию отключена для текстовых полей. Задайте fielddata=true для [your_field], чтобы загрузить fielddata в память
- search_phase_execution_exceptionsearch_phase_execution_exception: сбой на всех шардах / не удалось выполнить фазу [query]
- too_many_clausestoo_many_clauses: maxClauseCount равен 1024 (в запросе слишком много условий)
- version_conflict_engine_exceptionversion_conflict_engine_exception: [_doc][id]: конфликт версий, текущая версия [x] отличается от указанной [y] (HTTP 409)