document_missing_exception: document_missing_exception: [_doc][id]: document missing(ドキュメントが存在しない)
Elasticsearch意味
更新 (_update) 対象のドキュメントがインデックスに見つからなかった。更新には既存のドキュメントが必要であり、ドキュメントが存在しない場合にこの例外が発生する。
原因
ドキュメントが以前に削除された、作成されていない、誤った _id の使用、要求が誤ったインデックスに送られた、またはカスタムルーティングで書き込まれたドキュメントにルーティングなしでアクセスした。(GET と _update はリアルタイムであり、refresh の遅延はこのエラーの原因にならない。)
対処方法
_id と対象インデックスが正しいことを確認する: GET /index-name/_doc/id。存在すれば更新、なければ作成という動作が必要なら、_update 要求で upsert (または doc_as_upsert:true) を使う。index (PUT) でドキュメントを直接作成する。アプリケーションではこの例外を捕捉し、upsert ロジックにフォールバックする。
同じデータベースの他の項目
- search_phase_execution_exceptionsearch_phase_execution_exception: all shards failed / Failed to execute phase [query](全シャードで検索フェーズの実行に失敗)
- too_many_clausestoo_many_clauses: maxClauseCount is set to 1024 (query contains too many clauses)(クエリの句が多すぎる)
- version_conflict_engine_exceptionversion_conflict_engine_exception: [_doc][id]: version conflict, current version [x] is different than the one provided [y] (HTTP 409)(バージョンの競合)
- index_not_found_exceptionindex_not_found_exception: no such index [index_name] (HTTP 404)(インデックスが存在しない)
- resource_already_exists_exceptionresource_already_exists_exception: index [index_name/uuid] already exists (HTTP 400)(インデックスがすでに存在する)
- cluster_health_redcluster health status: RED / unassigned shards(クラスタの健全性 RED / 未割り当てシャード)
- no_shard_available_action_exceptionno_shard_available_action_exception: No shard available for [...](利用可能なシャードがない)