From c0de9795951c3f01d8416b09dc8c6cd9aff3531f Mon Sep 17 00:00:00 2001 From: jiaowc <35327957+jiaowc@users.noreply.github.com> Date: Thu, 12 Feb 2026 15:21: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=20(#5560)?= 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 dc7c3d14..26e9c492 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 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; } 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 ae146701..367d6c47 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 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; }