Skip to content

Commit d347ada

Browse files
author
gesong.samuel
committed
fix wildcard term & terms query & add YAML REST test
1 parent b23c9de commit d347ada

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

rest-api-spec/src/main/resources/rest-api-spec/test/search/270_wildcard_fieldtype_queries.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,3 +227,13 @@ setup:
227227
my_field:
228228
value: ".*"
229229
- match: { hits.total.value: 5 }
230+
---
231+
"terms query on wildcard field matches":
232+
- do:
233+
search:
234+
index: test
235+
body:
236+
query:
237+
terms: { my_field: ["AbCd"] }
238+
- match: { hits.total.value: 1 }
239+
- match: { hits.hits.0._id: "5" }

server/src/main/java/org/opensearch/index/mapper/WildcardFieldMapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -635,7 +635,7 @@ public Query rangeQuery(Object lowerTerm, Object upperTerm, boolean includeLower
635635

636636
@Override
637637
public Query termQueryCaseInsensitive(Object value, QueryShardContext context) {
638-
return wildcardQuery(value.toString(), MultiTermQuery.CONSTANT_SCORE_REWRITE, true, context);
638+
return wildcardQuery(BytesRefs.toString(value), MultiTermQuery.CONSTANT_SCORE_REWRITE, true, context);
639639
}
640640

641641
@Override
@@ -649,7 +649,7 @@ public Query termsQuery(List<?> values, QueryShardContext context) {
649649
Set<String> expectedValues = new HashSet<>();
650650
StringBuilder pattern = new StringBuilder();
651651
for (Object value : values) {
652-
String stringVal = value.toString();
652+
String stringVal = BytesRefs.toString(value);
653653
builder.add(matchAllTermsQuery(name(), getRequiredNGrams(stringVal)), BooleanClause.Occur.SHOULD);
654654
expectedValues.add(stringVal);
655655
if (pattern.length() > 0) {

0 commit comments

Comments
 (0)