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

max_bytes_length_exceeded_exception: Document contains at least one immense term that is too long(ドキュメントに長すぎる巨大な term が少なくとも 1 つ含まれる)

Elasticsearch

意味

インデックス作成中のドキュメントで、ある term (特に keyword/非解析フィールドの値) が許容される最大バイト長 (32766 バイト) を超えた。Lucene はそれほど長い term をインデックス化できない。

原因

keyword フィールドに (全体として) 書き込まれた非常に長いテキスト値。例: ドキュメント本文全体、base64 データ、長い URL/識別子を keyword フィールドに格納した。keyword フィールドは解析されないため、値は単一の term としてインデックス化され上限を超える。

対処方法

長いテキストには text (解析対象) フィールドを使用する。keyword は完全一致が必要な短い値専用である。値に上限を設けるには、マッピングで ignore_above を使用する (これより長い値はインデックス化されないが格納はされる)。不要であれば、非常に長いフィールドを index:false に設定する。データ型に基づいてフィールド設計 (text と keyword) を見直す。

DBAtlas で開く →

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