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 <hexian...@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-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org