修复同步mysql数据到es7和es8 使用es别名报错 Not found the mapping info of index 问题 (#5560)

This commit is contained in:
jiaowc
2026-02-12 15:21:39 +08:00
committed by GitHub
parent fcadf564ba
commit c0de979595
2 changed files with 22 additions and 0 deletions

View File

@@ -132,7 +132,18 @@ public class ESConnection {
logger.error(e.getMessage(), e);
return null;
}
// 通过别名查询mapping返回的是真实索引名称,mappings.get(index)返回null,为兼容别名情况修改如下:
mappingMetaData = mappings.get(index);
if (mappingMetaData == null && !mappings.isEmpty()) {
// 如果通过索引名找不到,可能是别名,取第一个映射
mappingMetaData = mappings.values().iterator().next();
}
// 如果还是null,说明索引不存在或没有mapping
if (mappingMetaData == null) {
throw new IllegalArgumentException("Not found the mapping info of index: " + index);
}
}
return mappingMetaData;
}

View File

@@ -142,7 +142,18 @@ public class ESConnection {
logger.error(e.getMessage(), e);
return null;
}
// 通过别名查询mapping返回的是真实索引名称,mappings.get(index)返回null,为兼容别名情况修改如下:
mappingMetaData = mappings.get(index);
if (mappingMetaData == null && !mappings.isEmpty()) {
// 如果通过索引名找不到,可能是别名,取第一个映射
mappingMetaData = mappings.values().iterator().next();
}
// 如果还是null,说明索引不存在或没有mapping
if (mappingMetaData == null) {
throw new IllegalArgumentException("Not found the mapping info of index: " + index);
}
return mappingMetaData;
}