DBAtlas · データベース運用アトラス

routing_missing_exception: Routing value is required for this document(このドキュメントにはルーティング値が必要)

Elasticsearch

意味

ドキュメントへのアクセス/インデックス作成にルーティング値が必要だが、指定されていない。ルーティングがないため、Elasticsearch はドキュメントがどのシャードに属するか判断できなかった。

原因

インデックスのマッピングで _routing required=true が定義されている、parent-join (親子) 関係を使用しており子ドキュメントにルーティングが必要、または index/get/update/delete 要求で routing パラメータが省略された。カスタムルーティングで書き込んだドキュメントをルーティングを指定せずに読み取るのが典型的な原因。

対処方法

要求でルーティング値を明示的に指定する (例: index/get/update/delete 呼出しで ?routing=value)。parent-join では、子ドキュメントのルーティングとして親の id を渡す。読み取り/更新/削除には、ドキュメント書き込み時と同じルーティングを使用する。マッピングの _routing の必須設定 (required) を見直す。

DBAtlas で開く →

同じデータベースの他の項目