From fc2d1db87161fd181b2b17e0d31f2f10eed3970a Mon Sep 17 00:00:00 2001 From: jiaowc Date: Mon, 5 Jan 2026 16:12:39 +0800 Subject: [PATCH] =?UTF-8?q?=20=E4=BF=AE=E5=A4=8D=E5=90=8C=E6=AD=A5mysql?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=88=B0es7=E5=92=8Ces8=20=E4=BD=BF=E7=94=A8?= =?UTF-8?q?es=E5=88=AB=E5=90=8D=E6=8A=A5=E9=94=99=20=20Not=20found=20the?= =?UTF-8?q?=20mapping=20info=20of=20index=20=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/adapter/es7x/support/ESConnection.java | 11 +++++++++++ .../client/adapter/es8x/support/ESConnection.java | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/client-adapter/es7x/src/main/java/com/alibaba/otter/canal/client/adapter/es7x/support/ESConnection.java b/client-adapter/es7x/src/main/java/com/alibaba/otter/canal/client/adapter/es7x/support/ESConnection.java index dc7c3d143..26e9c492b 100644 --- a/client-adapter/es7x/src/main/java/com/alibaba/otter/canal/client/adapter/es7x/support/ESConnection.java +++ b/client-adapter/es7x/src/main/java/com/alibaba/otter/canal/client/adapter/es7x/support/ESConnection.java @@ -132,7 +132,18 @@ public MappingMetaData getMapping(String index) { 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; } diff --git a/client-adapter/es8x/src/main/java/com/alibaba/otter/canal/client/adapter/es8x/support/ESConnection.java b/client-adapter/es8x/src/main/java/com/alibaba/otter/canal/client/adapter/es8x/support/ESConnection.java index ae1467012..367d6c476 100644 --- a/client-adapter/es8x/src/main/java/com/alibaba/otter/canal/client/adapter/es8x/support/ESConnection.java +++ b/client-adapter/es8x/src/main/java/com/alibaba/otter/canal/client/adapter/es8x/support/ESConnection.java @@ -142,7 +142,18 @@ public MappingMetadata getMapping(String index) { 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; }