From beff85ca0f6159c00c352a6e73b99f3b4732cc98 Mon Sep 17 00:00:00 2001 From: Louis Chu Date: Thu, 1 Dec 2022 12:28:41 -0800 Subject: [PATCH] Refactor fuzziness interface on query builders Signed-off-by: noCharger --- CHANGELOG.md | 1 + .../org/opensearch/index/query/FuzzyQueryBuilder.java | 5 +++-- .../index/query/MatchBoolPrefixQueryBuilder.java | 8 ++++---- .../org/opensearch/index/query/MatchQueryBuilder.java | 8 ++++---- .../index/query/QueryStringQueryBuilder.java | 7 +++++-- .../opensearch/index/query/FuzzyQueryBuilderTests.java | 5 +++++ .../index/query/MatchBoolPrefixQueryBuilderTests.java | 5 +++++ .../opensearch/index/query/MatchQueryBuilderTests.java | 5 +++++ .../index/query/MultiMatchQueryBuilderTests.java | 5 +++++ .../index/query/QueryStringQueryBuilderTests.java | 10 +++++++--- 10 files changed, 44 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7fd16ff6af292..42fcf4022ff93 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -77,6 +77,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - Fix 'org.apache.hc.core5.http.ParseException: Invalid protocol version' under JDK 16+ ([#4827](https://github.com/opensearch-project/OpenSearch/pull/4827)) - Fixed compression support for h2c protocol ([#4944](https://github.com/opensearch-project/OpenSearch/pull/4944)) - Reject bulk requests with invalid actions ([#5299](https://github.com/opensearch-project/OpenSearch/issues/5299)) +- Refactor fuzziness interface on query builders ([#5433](https://github.com/opensearch-project/OpenSearch/pull/5433)) ### Security diff --git a/server/src/main/java/org/opensearch/index/query/FuzzyQueryBuilder.java b/server/src/main/java/org/opensearch/index/query/FuzzyQueryBuilder.java index 2def2dab53450..f0521f3843eb4 100644 --- a/server/src/main/java/org/opensearch/index/query/FuzzyQueryBuilder.java +++ b/server/src/main/java/org/opensearch/index/query/FuzzyQueryBuilder.java @@ -203,8 +203,9 @@ public Object value() { return maybeConvertToString(this.value); } - public FuzzyQueryBuilder fuzziness(Fuzziness fuzziness) { - this.fuzziness = (fuzziness == null) ? DEFAULT_FUZZINESS : fuzziness; + /** Sets the fuzziness used when evaluated to a fuzzy query type. Defaults to "AUTO". */ + public FuzzyQueryBuilder fuzziness(Object fuzziness) { + this.fuzziness = (fuzziness == null) ? DEFAULT_FUZZINESS : Fuzziness.build(fuzziness); return this; } diff --git a/server/src/main/java/org/opensearch/index/query/MatchBoolPrefixQueryBuilder.java b/server/src/main/java/org/opensearch/index/query/MatchBoolPrefixQueryBuilder.java index f8f84c52309d5..9c2a05a2a07e2 100644 --- a/server/src/main/java/org/opensearch/index/query/MatchBoolPrefixQueryBuilder.java +++ b/server/src/main/java/org/opensearch/index/query/MatchBoolPrefixQueryBuilder.java @@ -177,7 +177,9 @@ public String minimumShouldMatch() { /** Sets the fuzziness used when evaluated to a fuzzy query type. Defaults to "AUTO". */ public MatchBoolPrefixQueryBuilder fuzziness(Object fuzziness) { - this.fuzziness = Fuzziness.build(fuzziness); + if (fuzziness != null) { + this.fuzziness = Fuzziness.build(fuzziness); + } return this; } @@ -354,9 +356,7 @@ public static MatchBoolPrefixQueryBuilder fromXContent(XContentParser parser) th queryBuilder.minimumShouldMatch(minimumShouldMatch); queryBuilder.boost(boost); queryBuilder.queryName(queryName); - if (fuzziness != null) { - queryBuilder.fuzziness(fuzziness); - } + queryBuilder.fuzziness(fuzziness); queryBuilder.prefixLength(prefixLength); queryBuilder.maxExpansions(maxExpansion); queryBuilder.fuzzyTranspositions(fuzzyTranspositions); diff --git a/server/src/main/java/org/opensearch/index/query/MatchQueryBuilder.java b/server/src/main/java/org/opensearch/index/query/MatchQueryBuilder.java index 380e8722daca9..81389a3f128b3 100644 --- a/server/src/main/java/org/opensearch/index/query/MatchQueryBuilder.java +++ b/server/src/main/java/org/opensearch/index/query/MatchQueryBuilder.java @@ -210,7 +210,9 @@ public String analyzer() { /** Sets the fuzziness used when evaluated to a fuzzy query type. Defaults to "AUTO". */ public MatchQueryBuilder fuzziness(Object fuzziness) { - this.fuzziness = Fuzziness.build(fuzziness); + if (fuzziness != null) { + this.fuzziness = Fuzziness.build(fuzziness); + } return this; } @@ -565,9 +567,7 @@ public static MatchQueryBuilder fromXContent(XContentParser parser) throws IOExc matchQuery.operator(operator); matchQuery.analyzer(analyzer); matchQuery.minimumShouldMatch(minimumShouldMatch); - if (fuzziness != null) { - matchQuery.fuzziness(fuzziness); - } + matchQuery.fuzziness(fuzziness); matchQuery.fuzzyRewrite(fuzzyRewrite); matchQuery.prefixLength(prefixLength); matchQuery.fuzzyTranspositions(fuzzyTranspositions); diff --git a/server/src/main/java/org/opensearch/index/query/QueryStringQueryBuilder.java b/server/src/main/java/org/opensearch/index/query/QueryStringQueryBuilder.java index 32337f5df34c5..6384a2deb6f80 100644 --- a/server/src/main/java/org/opensearch/index/query/QueryStringQueryBuilder.java +++ b/server/src/main/java/org/opensearch/index/query/QueryStringQueryBuilder.java @@ -79,6 +79,7 @@ public class QueryStringQueryBuilder extends AbstractQueryBuilder