You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@seatunnel.apache.org by fa...@apache.org on 2023/03/10 02:36:27 UTC

[incubator-seatunnel] branch dev updated: [Bug][Connector-V2][ES]Fix es field type not support binary(#4240) (#4274)

This is an automated email from the ASF dual-hosted git repository.

fanjia pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-seatunnel.git


The following commit(s) were added to refs/heads/dev by this push:
     new 84f10f201 [Bug][Connector-V2][ES]Fix es field type not support binary(#4240) (#4274)
84f10f201 is described below

commit 84f10f20163caadcd23d61f1bb1263acdc03f82c
Author: iture123 <10...@qq.com>
AuthorDate: Fri Mar 10 10:36:21 2023 +0800

    [Bug][Connector-V2][ES]Fix es field type not support binary(#4240) (#4274)
    
    Co-authored-by: iture123 <it...@163.com>
---
 .../constant/EsTypeMappingSeaTunnelType.java            | 17 ++++++++++++++++-
 .../exception/ElasticsearchConnectorErrorCode.java      |  1 +
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/constant/EsTypeMappingSeaTunnelType.java b/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/constant/EsTypeMappingSeaTunnelType.java
index 2ae6fe2ad..7508136bd 100644
--- a/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/constant/EsTypeMappingSeaTunnelType.java
+++ b/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/constant/EsTypeMappingSeaTunnelType.java
@@ -20,6 +20,8 @@ package org.apache.seatunnel.connectors.seatunnel.elasticsearch.constant;
 import org.apache.seatunnel.api.table.type.BasicType;
 import org.apache.seatunnel.api.table.type.LocalTimeType;
 import org.apache.seatunnel.api.table.type.SeaTunnelDataType;
+import org.apache.seatunnel.connectors.seatunnel.elasticsearch.exception.ElasticsearchConnectorErrorCode;
+import org.apache.seatunnel.connectors.seatunnel.elasticsearch.exception.ElasticsearchConnectorException;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -32,6 +34,7 @@ public class EsTypeMappingSeaTunnelType {
                     put("string", BasicType.STRING_TYPE);
                     put("keyword", BasicType.STRING_TYPE);
                     put("text", BasicType.STRING_TYPE);
+                    put("binary", BasicType.STRING_TYPE);
                     put("boolean", BasicType.BOOLEAN_TYPE);
                     put("byte", BasicType.BYTE_TYPE);
                     put("short", BasicType.SHORT_TYPE);
@@ -44,7 +47,19 @@ public class EsTypeMappingSeaTunnelType {
                 }
             };
 
+    /**
+     * if not find the mapping SeaTunnelDataType will throw runtime exception
+     *
+     * @param esType
+     * @return
+     */
     public static SeaTunnelDataType getSeaTunnelDataType(String esType) {
-        return MAPPING.get(esType);
+        SeaTunnelDataType seaTunnelDataType = MAPPING.get(esType);
+        if (seaTunnelDataType == null) {
+            throw new ElasticsearchConnectorException(
+                    ElasticsearchConnectorErrorCode.ES_FIELD_TYPE_NOT_SUPPORT,
+                    String.format("elasticsearch type is %s", esType));
+        }
+        return seaTunnelDataType;
     }
 }
diff --git a/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/exception/ElasticsearchConnectorErrorCode.java b/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/exception/ElasticsearchConnectorErrorCode.java
index a08c6a3ff..67f01201d 100644
--- a/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/exception/ElasticsearchConnectorErrorCode.java
+++ b/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/exception/ElasticsearchConnectorErrorCode.java
@@ -28,6 +28,7 @@ public enum ElasticsearchConnectorErrorCode implements SeaTunnelErrorCode {
     LIST_INDEX_FAILED("ELASTICSEARCH-05", "List elasticsearch index failed"),
     DROP_INDEX_FAILED("ELASTICSEARCH-06", "Drop elasticsearch index failed"),
     CREATE_INDEX_FAILED("ELASTICSEARCH-07", "Create elasticsearch index failed"),
+    ES_FIELD_TYPE_NOT_SUPPORT("ELASTICSEARCH-08", "Not support the elasticsearch field type");
     ;
 
     private final String code;