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

illegal_argument_exception_total_fields: Limit of total fields has been exceeded(フィールド総数の上限を超えた)

Elasticsearch

意味

インデックスマッピングのフィールド総数が許容上限 (index.mapping.total_fields.limit、デフォルト 1000) を超えた。新しいフィールドを追加できないため、インデックス作成が失敗する。

原因

通常はマッピング爆発: 動的マッピングが有効な状態で、非構造化/可変キーの JSON ドキュメント (例: キーがユーザーデータに由来するオブジェクト) が新しいフィールドをすべてマッピングに追加する。時間とともにフィールド数が急増し、上限に達する。

対処方法

根本原因を修正するには、可変キーのデータをオブジェクトではなく flattened フィールドまたはキーと値のペアの配列としてモデル化し、動的マッピングを制限する (dynamic: false または strict)。本当にフィールドがさらに必要な場合は、慎重に上限を引き上げる: PUT idx/_settings {"index.mapping.total_fields.limit": 2000}。GET idx/_mapping でフィールド数を確認し、マッピング爆発を監視する。

DBAtlas で開く →

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