📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 6.8-7.17

简要来说,当您尝试在 Elasticsearch 中创建一个以下划线('_')开头的映射类型时,就会出现此错误。Elasticsearch 将以下划线开头的名称保留用于内部操作。要解决此问题,请将映射类型重命名为不以以下划线开头的名称。同时,确保新名称符合 Elasticsearch 的命名规范。需要注意的是,映射类型在 Elasticsearch 7.x 中已被弃用,在 8.x 中已被移除,因此请考虑重构数据以避免使用它们。

日志上下文 #

日志 “Document mapping type name can’t start with ‘_'; found: [” + mappingType + “]” 的类名是 MetadataMappingService.java。我们为那些寻求深入了解上下文的人从 Elasticsearch 源代码中提取了以下内容:

assert mappingType != null;  if (MapperService.DEFAULT_MAPPING.equals(mappingType) == false
 && MapperService.SINGLE_MAPPING_NAME.equals(mappingType) == false
 && mappingType.charAt(0) == '_') {
 throw new InvalidTypeNameException("Document mapping type name can't start with '_'; found: [" + mappingType + "]");
 }
 Metadata.Builder builder = Metadata.builder(metadata);
 boolean updated = false;
 for (IndexMetadata indexMetadata : updateList) {
 boolean updatedMapping = false;