From 9a8d99cd0912e8012de2f1905c7623d643d74aab Mon Sep 17 00:00:00 2001 From: Heng Qian Date: Mon, 3 Mar 2025 17:17:39 +0800 Subject: [PATCH 1/2] Fix PredicateAnalyzer for in and notIn Signed-off-by: Heng Qian --- .../sql/opensearch/request/PredicateAnalyzer.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/opensearch/src/main/java/org/opensearch/sql/opensearch/request/PredicateAnalyzer.java b/opensearch/src/main/java/org/opensearch/sql/opensearch/request/PredicateAnalyzer.java index a9f35f74bac..907476676a5 100644 --- a/opensearch/src/main/java/org/opensearch/sql/opensearch/request/PredicateAnalyzer.java +++ b/opensearch/src/main/java/org/opensearch/sql/opensearch/request/PredicateAnalyzer.java @@ -41,6 +41,7 @@ import com.google.common.base.Throwables; import com.google.common.collect.Range; import java.util.ArrayList; +import java.util.Collection; import java.util.GregorianCalendar; import java.util.LinkedHashMap; import java.util.List; @@ -897,15 +898,15 @@ public QueryExpression isTrue() { @Override public QueryExpression in(LiteralExpression literal) { - Iterable iterable = (Iterable) literal.value(); - builder = termsQuery(getFieldReference(), iterable); + Collection collection = (Collection) literal.value(); + builder = termsQuery(getFieldReference(), collection); return this; } @Override public QueryExpression notIn(LiteralExpression literal) { - Iterable iterable = (Iterable) literal.value(); - builder = boolQuery().mustNot(termsQuery(getFieldReference(), iterable)); + Collection collection = (Collection) literal.value(); + builder = boolQuery().mustNot(termsQuery(getFieldReference(), collection)); return this; } } From 3fa6e17b9164fec50cc206fc4379bb658a6910f2 Mon Sep 17 00:00:00 2001 From: Heng Qian Date: Mon, 3 Mar 2025 17:18:19 +0800 Subject: [PATCH 2/2] Change text field to keyword since we don't support push down for that type Signed-off-by: Heng Qian --- .../resources/indexDefinitions/occupation_index_mapping.json | 2 +- .../resources/indexDefinitions/state_country_index_mapping.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/integ-test/src/test/resources/indexDefinitions/occupation_index_mapping.json b/integ-test/src/test/resources/indexDefinitions/occupation_index_mapping.json index cfbd6fc7773..52470c0f55a 100644 --- a/integ-test/src/test/resources/indexDefinitions/occupation_index_mapping.json +++ b/integ-test/src/test/resources/indexDefinitions/occupation_index_mapping.json @@ -5,7 +5,7 @@ "type": "keyword" }, "occupation": { - "type": "text" + "type": "keyword" }, "country": { "type": "text" diff --git a/integ-test/src/test/resources/indexDefinitions/state_country_index_mapping.json b/integ-test/src/test/resources/indexDefinitions/state_country_index_mapping.json index da614cf5253..03840f36773 100644 --- a/integ-test/src/test/resources/indexDefinitions/state_country_index_mapping.json +++ b/integ-test/src/test/resources/indexDefinitions/state_country_index_mapping.json @@ -17,7 +17,7 @@ } }, "country": { - "type": "text" + "type": "keyword" }, "year": { "type": "integer"