strict_dynamic_mapping_exception: strict_dynamic_mapping_exception: mapping set to strict, dynamic introduction of [...] within [...] is not allowed(strict マッピングで新しいフィールドの動的追加は不可)
Elasticsearch意味
インデックスまたはオブジェクトのマッピングが "dynamic": "strict" に設定されているため、マッピングに定義されていない新しいフィールドを含むドキュメントが拒否された。strict モードは、スキーマ外のフィールドが暗黙的に追加されるのを防ぐ。
原因
マッピングが dynamic:strict の状態で、マッピングにないフィールド (誤字、新しいフィールド、想定外のフィールド) がドキュメントで送られた。通常はスキーマ管理を厳格に保つための意図的な安全策である。
対処方法
ドキュメント内の余分な/つづりの誤ったフィールドを修正または削除する。そのフィールドが本当に必要なら、先にマッピングに追加する: PUT /index-name/_mapping {"properties": {"new_field": {"type": "..."}}}。新しいフィールドを自動で追加したい場合は dynamic を "true" に、保存するがインデックスしない場合は "false" に設定する。スキーマの規律を保つため、strict モードは意図して使う。
同じデータベースの他の項目
- high_disk_watermark_exceededhigh disk watermark [90%] exceeded / flood stage disk watermark [95%] exceeded(ディスクウォーターマークの超過)
- circuit_breaking_exceptionCircuitBreakingException[[parent] Data too large, data for [<...>] would be [...], which is larger than the limit of [...]](データが大きすぎる (サーキットブレーカー))
- mapper_parsing_exceptionmapper_parsing_exception: failed to parse field [...] of type [...](フィールドの解析に失敗)
- illegal_argument_exception_fielddataillegal_argument_exception: Fielddata is disabled on text fields by default. Set fielddata=true on [your_field] in order to load fielddata in memory(text フィールドの fielddata はデフォルトで無効)
- 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)(バージョンの競合)