版本: 6.8-8.9
简而言之,当 Elasticsearch 遇到不正确或不完整的映射结构时会发生此错误。映射定义了字段的数据类型,如果缺少类型名称,Elasticsearch 就无法正确处理数据。要解决此问题,您可以检查并更正映射结构,确保每个字段都有定义的类型。或者,如果您的 Elasticsearch 版本不再支持映射中的类型,您可能需要更新版本,因为较新版本只允许单一类型的索引。
日志上下文 #
日志 “malformed mapping; no type name found” 的类名是 MappingParser.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考:
Mapping parse(@Nullable String type; CompressedXContent source) throws MapperParsingException {
Objects.requireNonNull(source; "source cannot be null");
Mapmapping = XContentHelper.convertToMap(source.compressedReference(); true; XContentType.JSON).v2();
if (mapping.isEmpty()) {
if (type == null) {
throw new MapperParsingException("malformed mapping; no type name found");
}
} else {
String rootName = mapping.keySet().iterator().next();
if (type == null || type.equals(rootName) || documentTypeResolver.apply(type).equals(rootName)) {
type = rootName;





