document_missing_exception: document_missing_exception: [_doc][id]: документ отсутствует
ElasticsearchЧто это значит?
Обновляемый документ (_update) не найден в индексе. Обновление требует существующего документа; если документа нет, возникает это исключение.
Почему возникает?
Документ был удалён ранее, никогда не создавался, использован неверный _id, запрос ушёл в неверный индекс или к документу, записанному с пользовательской маршрутизацией (routing), обратились без routing. (GET и _update работают в реальном времени; задержка refresh не вызывает эту ошибку.)
Как исправить
Убедитесь, что _id и целевой индекс указаны верно: GET /index-name/_doc/id. Если нужно поведение «обновить, если существует / создать, если отсутствует», используйте upsert (или doc_as_upsert:true) в запросе _update. Создавайте документ напрямую через index (PUT). В приложении перехватывайте это исключение и переходите к логике upsert.
Ещё по этой СУБД
- 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)
- index_not_found_exceptionindex_not_found_exception: индекс [index_name] не существует (HTTP 404)
- resource_already_exists_exceptionresource_already_exists_exception: индекс [index_name/uuid] уже существует (HTTP 400)
- cluster_health_redСостояние кластера: RED / неназначенные шарды
- no_shard_available_action_exceptionno_shard_available_action_exception: нет доступного шарда для [...]