版本: 7.14-7.15
简而言之,当 Elasticsearch 尝试使用 copy_to 函数将字段复制到另一个字段时,如果目标字段不存在或未正确定义,就会出现此错误。要解决此问题,如果目标字段不存在,您可以创建它;如果目标字段已存在,请检查映射中目标字段的定义。确保字段类型与源字段的数据类型匹配。此外,确保在映射中正确实现了 copy_to 函数。
日志上下文 #
日志 “Cannot copy field [” + mapper.name() + “] to fields " 的类名是 DocumentParser.java。 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人使用:
List<String> copyToFields = fieldMapper.copyTo().copyToFields();
if (context.isWithinCopyTo() == false && copyToFields.isEmpty() == false) {
XContentParser.Token currentToken = context.parser().currentToken();
if (currentToken.isValue() == false && currentToken != XContentParser.Token.VALUE_NULL) {
// sanity check; we currently support copy-to only for value-type field; not objects
throw new MapperParsingException("Cannot copy field [" + mapper.name() + "] to fields " + copyToFields +
". Copy-to currently only works for value-type fields; not objects.");
}
parseCopyFields(context; copyToFields);
}
} else if (mapper instanceof FieldAliasMapper) {





