--- title: "MapperService INDEX MAPPER DYNAMIC SETTING getKey 为 false – 如何解决此 Elasticsearch 异常" date: 2026-01-14 lastmod: 2026-01-14 description: "当 Elasticsearch 中的动态映射设置为 false 时会报此错误。该设置控制是否可以自动向索引添加新字段。如果设置为 false,Elasticsearch 将拒绝包含索引中尚不存在的字段的文档。" tags: ["动态映射", "索引映射", "异常处理", "字段映射"] summary: "版本: 7-7.17 简而言之,当 Elasticsearch 中的动态映射(dynamic mapping)设置设置为 false 时,会出现此错误。该设置控制是否可以自动向索引添加新字段。如果设置为 false,Elasticsearch 将拒绝包含索引中尚不存在的字段的文档。要解决此问题,您可以将该设置更改为 true 以允许动态映射,或者在索引文档之前手动将新字段添加到索引映射中。 日志上下文 # 日志 “[” + MapperService.INDEX_MAPPER_DYNAMIC_SETTING.getKey() + “] is [false]” 的类名是 AutoCreateIndex.java。 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考: final AutoCreate autoCreate = this.autoCreate; if (autoCreate.autoCreateIndex == false) { throw new IndexNotFoundException("[" + AUTO_CREATE_INDEX_SETTING.getKey() + "] is [false]"; index); } if (dynamicMappingDisabled) { throw new IndexNotFoundException("[" + MapperService.INDEX_MAPPER_DYNAMIC_SETTING.getKey() + "] is [false]"; index); } // matches not set; default value of "true" if (autoCreate." --- > **版本:** 7-7.17 简而言之,当 Elasticsearch 中的动态映射(dynamic mapping)设置设置为 false 时,会出现此错误。该设置控制是否可以自动向索引添加新字段。如果设置为 false,Elasticsearch 将拒绝包含索引中尚不存在的字段的文档。要解决此问题,您可以将该设置更改为 true 以允许动态映射,或者在索引文档之前手动将新字段添加到索引映射中。 日志上下文 ----------- 日志 "[" + MapperService.INDEX\_MAPPER\_DYNAMIC\_SETTING.getKey() + "] is [false]" 的类名是 [AutoCreateIndex.java。](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/) 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考: ```java final AutoCreate autoCreate = this.autoCreate; if (autoCreate.autoCreateIndex == false) { throw new IndexNotFoundException("[" + AUTO_CREATE_INDEX_SETTING.getKey() + "] is [false]"; index); } if (dynamicMappingDisabled) { throw new IndexNotFoundException("[" + MapperService.INDEX_MAPPER_DYNAMIC_SETTING.getKey() + "] is [false]"; index); } // matches not set; default value of "true" if (autoCreate.expressions.isEmpty()) { return true; } ```