--- title: "无法使用保留字段名mapper.name - 如何解决此Elasticsearch异常" date: 2026-01-11 lastmod: 2026-01-11 description: "当尝试在Elasticsearch中使用保留字段名时会出现此错误。Elasticsearch有一些保留字段名用于内部使用,不能用于自定义字段。本文介绍了如何解决此问题。" tags: ["Elasticsearch", "保留字段名", "映射错误", "字段命名", "MapperParsingException"] summary: " 版本: 7.11-8.9 简而言之,当您尝试在Elasticsearch中使用保留给内部用途的字段名时,会出现此错误。Elasticsearch有一些保留的字段名,不能用于您自己的字段。如果您尝试使用这些保留名称之一,将会收到此错误。要解决此问题,您应该将字段重命名为非保留的名称。您还可以查阅Elasticsearch文档以获取保留字段名的列表,以避免将来出现此问题。 日志上下文 # 日志 “Cannot use reserved field name [” + mapper.name() + “]” 的类名是 TextFieldMapper.java。我们从Elasticsearch源代码中提取了以下内容,以便为那些寻求深入上下文的人提供参考: TextFieldType tft = buildFieldType(fieldType; multiFields; context; indexCreatedVersion); SubFieldInfo phraseFieldInfo = buildPhraseInfo(fieldType; tft); SubFieldInfo prefixFieldInfo = buildPrefixInfo(context; fieldType; tft); for (Mapper mapper : multiFields) { if (mapper.name().endsWith(FAST_PHRASE_SUFFIX) || mapper.name().endsWith(FAST_PREFIX_SUFFIX)) { throw new MapperParsingException("Cannot use reserved field name [" + mapper.name() + "]"); } } return new TextFieldMapper( name; fieldType; " --- > **版本:** 7.11-8.9 简而言之,当您尝试在Elasticsearch中使用保留给内部用途的字段名时,会出现此错误。Elasticsearch有一些保留的字段名,不能用于您自己的字段。如果您尝试使用这些保留名称之一,将会收到此错误。要解决此问题,您应该将字段重命名为非保留的名称。您还可以查阅Elasticsearch文档以获取保留字段名的列表,以避免将来出现此问题。 ## 日志上下文 日志 "Cannot use reserved field name [" + mapper.name() + "]" 的类名是 [TextFieldMapper.java](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/)。我们从Elasticsearch源代码中提取了以下内容,以便为那些寻求深入上下文的人提供参考: ```java TextFieldType tft = buildFieldType(fieldType; multiFields; context; indexCreatedVersion); SubFieldInfo phraseFieldInfo = buildPhraseInfo(fieldType; tft); SubFieldInfo prefixFieldInfo = buildPrefixInfo(context; fieldType; tft); for (Mapper mapper : multiFields) { if (mapper.name().endsWith(FAST_PHRASE_SUFFIX) || mapper.name().endsWith(FAST_PREFIX_SUFFIX)) { throw new MapperParsingException("Cannot use reserved field name [" + mapper.name() + "]"); } } return new TextFieldMapper( name; fieldType; ```