From 5821c1f60670c20b7cdcd3e0a44ea07689b5a749 Mon Sep 17 00:00:00 2001 From: mcy Date: Wed, 20 Mar 2019 09:10:15 +0800 Subject: [PATCH] modify --- .../client/adapter/es/service/ESEtlService.java | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/client-adapter/elasticsearch/src/main/java/com/alibaba/otter/canal/client/adapter/es/service/ESEtlService.java b/client-adapter/elasticsearch/src/main/java/com/alibaba/otter/canal/client/adapter/es/service/ESEtlService.java index 8b1b2c5c..ad711fb6 100644 --- a/client-adapter/elasticsearch/src/main/java/com/alibaba/otter/canal/client/adapter/es/service/ESEtlService.java +++ b/client-adapter/elasticsearch/src/main/java/com/alibaba/otter/canal/client/adapter/es/service/ESEtlService.java @@ -202,7 +202,7 @@ public class ESEtlService { long batchBegin = System.currentTimeMillis(); while (rs.next()) { Map esFieldData = new LinkedHashMap<>(); - Map idEsFieldData = new HashMap<>(); + Object idVal = null; for (FieldItem fieldItem : mapping.getSchemaItem().getSelectFields().values()) { String fieldName = fieldItem.getFieldName(); @@ -212,8 +212,7 @@ public class ESEtlService { // 如果是主键字段则不插入 if (fieldItem.getFieldName().equals(mapping.get_id())) { - Object val = esTemplate.getValFromRS(mapping, rs, fieldName, fieldName); - idEsFieldData.put(Util.cleanColumn(fieldName), val); + idVal = esTemplate.getValFromRS(mapping, rs, fieldName, fieldName); } else { Object val = esTemplate.getValFromRS(mapping, rs, fieldName, fieldName); esFieldData.put(Util.cleanColumn(fieldName), val); @@ -248,11 +247,6 @@ public class ESEtlService { }); } - Object idVal = null; - if (mapping.get_id() != null) { - idVal = idEsFieldData.get(mapping.get_id()); - } - if (idVal != null) { String parentVal = (String) esFieldData.remove("$parent_routing"); if (mapping.isUpsert()) { @@ -274,7 +268,7 @@ public class ESEtlService { bulkRequestBuilder.add(indexRequestBuilder); } } else { - idVal = idEsFieldData.get(mapping.getPk()); + idVal = esFieldData.get(mapping.getPk()); SearchResponse response = transportClient.prepareSearch(mapping.get_index()) .setTypes(mapping.get_type()) .setQuery(QueryBuilders.termQuery(mapping.getPk(), idVal))