You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by wy...@apache.org on 2020/08/11 04:09:37 UTC
[incubator-doris] branch master updated: [Doris On ES][Bug-Fix]
Resolve NullPointerException when multi fields with `text` type (#4300)
This is an automated email from the ASF dual-hosted git repository.
wyf pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git
The following commit(s) were added to refs/heads/master by this push:
new 48f3ba3 [Doris On ES][Bug-Fix] Resolve NullPointerException when multi fields with `text` type (#4300)
48f3ba3 is described below
commit 48f3ba35ec8044c5df1acb251e0cdffc458ac583
Author: hexiang55 <he...@gmail.com>
AuthorDate: Tue Aug 11 12:09:17 2020 +0800
[Doris On ES][Bug-Fix] Resolve NullPointerException when multi fields with `text` type (#4300)
---
.../doris/external/elasticsearch/MappingPhase.java | 6 +++++-
.../external/elasticsearch/MappingPhaseTest.java | 13 +++++++++++-
.../es/test_index_mapping_field_mult_analyzer.json | 23 ++++++++++++++++++++++
3 files changed, 40 insertions(+), 2 deletions(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/external/elasticsearch/MappingPhase.java b/fe/fe-core/src/main/java/org/apache/doris/external/elasticsearch/MappingPhase.java
index b6d16e2..4b82e18 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/external/elasticsearch/MappingPhase.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/external/elasticsearch/MappingPhase.java
@@ -20,6 +20,7 @@ package org.apache.doris.external.elasticsearch;
import org.apache.doris.catalog.Column;
import org.apache.doris.catalog.EsTable;
+import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
import java.util.Iterator;
@@ -156,6 +157,9 @@ public class MappingPhase implements SearchPhase {
}
docValueField = colName;
}
- searchContext.docValueFieldsContext().put(colName, docValueField);
+ // docValueField Cannot be null
+ if (StringUtils.isNotEmpty(docValueField)) {
+ searchContext.docValueFieldsContext().put(colName, docValueField);
+ }
}
}
diff --git a/fe/fe-core/src/test/java/org/apache/doris/external/elasticsearch/MappingPhaseTest.java b/fe/fe-core/src/test/java/org/apache/doris/external/elasticsearch/MappingPhaseTest.java
index 9c9c5ad..d229d7c 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/external/elasticsearch/MappingPhaseTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/external/elasticsearch/MappingPhaseTest.java
@@ -32,6 +32,7 @@ import mockit.Expectations;
import mockit.Injectable;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
public class MappingPhaseTest extends EsTestCase {
@@ -102,4 +103,14 @@ public class MappingPhaseTest extends EsTestCase {
assertEquals("k2", searchContext1.docValueFieldsContext().get("k2"));
}
-}
\ No newline at end of file
+
+ @Test
+ public void testMultTextFields() throws Exception {
+ MappingPhase mappingPhase = new MappingPhase(null);
+ EsTable esTableAfter7X = fakeEsTable("fake", "test", "_doc", columns);
+ SearchContext searchContext = new SearchContext(esTableAfter7X);
+ mappingPhase.resolveFields(searchContext, loadJsonFromFile("data/es/test_index_mapping_field_mult_analyzer.json"));
+ assertFalse(searchContext.docValueFieldsContext().containsKey("k3"));
+
+ }
+}
diff --git a/fe/fe-core/src/test/resources/data/es/test_index_mapping_field_mult_analyzer.json b/fe/fe-core/src/test/resources/data/es/test_index_mapping_field_mult_analyzer.json
new file mode 100644
index 0000000..1a002bd
--- /dev/null
+++ b/fe/fe-core/src/test/resources/data/es/test_index_mapping_field_mult_analyzer.json
@@ -0,0 +1,23 @@
+{
+ "test": {
+ "mappings": {
+ "properties": {
+ "k1": {
+ "type": "long"
+ },
+ "k2": {
+ "type": "keyword"
+ },
+ "k3": {
+ "type": "text",
+ "fields": {
+ "ik": {
+ "type": "text",
+ "analyzer": "ik_max_word"
+ }
+ }
+ }
+ }
+ }
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org