--- title: "多字段中不允许使用 copy_to —— 如何解决此 Elasticsearch 异常" date: 2026-03-23 lastmod: 2026-03-23 description: "在 Elasticsearch 中,当在多字段(multi-field)内使用 'copy_to' 参数时会触发此异常。本文介绍了该错误的原因及解决方案。" tags: ["Elasticsearch", "映射异常", "多字段", "copy_to参数", "字段映射"] summary: "版本: 6.8-7.1 简而言之,当在 Elasticsearch 的多字段(multi-field)中使用 “copy_to” 参数时,会出现此错误。这是不被允许的,因为多字段的目的是为单个字段提供不同的分析方式,而不是用于复制数据。 要解决此问题,您可以从多字段中删除 “copy_to” 参数。或者,您可以在多字段之外创建一个单独的字段,并在那里使用 “copy_to” 参数。 日志上下文 # 日志 “copy_to in multi fields is not allowed. Found the copy_to in field [" + name + “] ” 的类名是 TypeParsers.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些需要深入了解上下文的人参考: iterator.remove(); } else if (parseMultiField(builder::addMultiField, name, parserContext, propName, propNode)) { iterator.remove(); } else if (propName.equals("copy_to")) { if (parserContext.isWithinMultiField()) { throw new MapperParsingException("copy_to in multi fields is not allowed. Found the copy_to in field [" + name + "] " + "which is within a multi field." --- > **版本:** 6.8-7.1 简而言之,当在 Elasticsearch 的多字段(multi-field)中使用 “copy_to” 参数时,会出现此错误。这是不被允许的,因为多字段的目的是为单个字段提供不同的分析方式,而不是用于复制数据。 要解决此问题,您可以从多字段中删除 “copy_to” 参数。或者,您可以在多字段之外创建一个单独的字段,并在那里使用 “copy_to” 参数。 ## 日志上下文 日志 “copy\_to in multi fields is not allowed. Found the copy\_to in field [" + name + "] ” 的类名是 [TypeParsers.java](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/)。我们从 Elasticsearch 源代码中提取了以下内容,供那些需要深入了解上下文的人参考: ```java iterator.remove(); } else if (parseMultiField(builder::addMultiField, name, parserContext, propName, propNode)) { iterator.remove(); } else if (propName.equals("copy_to")) { if (parserContext.isWithinMultiField()) { throw new MapperParsingException("copy_to in multi fields is not allowed. Found the copy_to in field [" + name + "] " + "which is within a multi field."); } else { List copyFields = parseCopyFields(propNode); FieldMapper.CopyTo.Builder cpBuilder = new FieldMapper.CopyTo.Builder(); copyFields.forEach(cpBuilder::add); ```