diff --git a/integ-test/src/test/java/org/opensearch/sql/ppl/RelevanceFunctionIT.java b/integ-test/src/test/java/org/opensearch/sql/ppl/RelevanceFunctionIT.java index 6938e1980b..715bd51d7b 100644 --- a/integ-test/src/test/java/org/opensearch/sql/ppl/RelevanceFunctionIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/ppl/RelevanceFunctionIT.java @@ -42,11 +42,11 @@ public void test_multi_match_all_params() throws IOException { String query = "SOURCE=" + TEST_INDEX_BEER + " | WHERE multi_match(['Body', Tags], 'taste beer', operator='and', analyzer=english," + "auto_generate_synonyms_phrase_query=true, boost = 0.77, cutoff_frequency=0.33," - + "fuzziness = 14, fuzzy_transpositions = false, lenient = true, max_expansions = 25," + + "fuzziness = 'AUTO:1,5', fuzzy_transpositions = false, lenient = true, max_expansions = 25," + "minimum_should_match = '2<-25% 9<-3', prefix_length = 7, tie_breaker = 0.3," + "type = most_fields, slop = 2, zero_terms_query = 'ALL') | fields Id"; var result = executeQuery(query); - assertEquals(507, result.getInt("total")); + assertEquals(424, result.getInt("total")); } @Test diff --git a/integ-test/src/test/java/org/opensearch/sql/sql/MultiMatchIT.java b/integ-test/src/test/java/org/opensearch/sql/sql/MultiMatchIT.java index ff57864ee8..5df9f0778f 100644 --- a/integ-test/src/test/java/org/opensearch/sql/sql/MultiMatchIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/sql/MultiMatchIT.java @@ -39,11 +39,11 @@ public void test_all_params() throws IOException { String query = "SELECT Id FROM " + TEST_INDEX_BEER + " WHERE multi_match(['Body', Tags], 'taste beer', operator='and', analyzer=english," + "auto_generate_synonyms_phrase_query=true, boost = 0.77, cutoff_frequency=0.33," - + "fuzziness = 14, fuzzy_transpositions = false, lenient = true, max_expansions = 25," + + "fuzziness = 'AUTO:1,5', fuzzy_transpositions = false, lenient = true, max_expansions = 25," + "minimum_should_match = '2<-25% 9<-3', prefix_length = 7, tie_breaker = 0.3," + "type = most_fields, slop = 2, zero_terms_query = 'ALL');"; var result = new JSONObject(executeQuery(query, "jdbc")); - assertEquals(507, result.getInt("total")); + assertEquals(424, result.getInt("total")); } @Test diff --git a/opensearch/src/main/java/org/opensearch/sql/opensearch/storage/script/filter/lucene/relevance/MultiMatchQuery.java b/opensearch/src/main/java/org/opensearch/sql/opensearch/storage/script/filter/lucene/relevance/MultiMatchQuery.java index 20f14799aa..b2865c1226 100644 --- a/opensearch/src/main/java/org/opensearch/sql/opensearch/storage/script/filter/lucene/relevance/MultiMatchQuery.java +++ b/opensearch/src/main/java/org/opensearch/sql/opensearch/storage/script/filter/lucene/relevance/MultiMatchQuery.java @@ -29,7 +29,7 @@ public MultiMatchQuery() { b.autoGenerateSynonymsPhraseQuery(Boolean.parseBoolean(v.stringValue()))) .put("boost", (b, v) -> b.boost(Float.parseFloat(v.stringValue()))) .put("cutoff_frequency", (b, v) -> b.cutoffFrequency(Float.parseFloat(v.stringValue()))) - .put("fuzziness", (b, v) -> b.fuzziness(Integer.parseInt(v.stringValue()))) + .put("fuzziness", (b, v) -> b.fuzziness(v.stringValue())) .put("fuzzy_transpositions", (b, v) -> b.fuzzyTranspositions(Boolean.parseBoolean(v.stringValue()))) .put("lenient", (b, v) -> b.lenient(Boolean.parseBoolean(v.stringValue()))) diff --git a/opensearch/src/test/java/org/opensearch/sql/opensearch/storage/script/filter/FilterQueryBuilderTest.java b/opensearch/src/test/java/org/opensearch/sql/opensearch/storage/script/filter/FilterQueryBuilderTest.java index 43f3d3170e..ec64d3d805 100644 --- a/opensearch/src/test/java/org/opensearch/sql/opensearch/storage/script/filter/FilterQueryBuilderTest.java +++ b/opensearch/src/test/java/org/opensearch/sql/opensearch/storage/script/filter/FilterQueryBuilderTest.java @@ -506,7 +506,7 @@ void should_build_multi_match_query_with_custom_parameters() { + " \"operator\" : \"AND\",\n" + " \"analyzer\" : \"keyword\",\n" + " \"slop\" : 1,\n" - + " \"fuzziness\" : \"2\",\n" + + " \"fuzziness\" : \"AUTO:2,4\",\n" + " \"prefix_length\" : 1,\n" + " \"max_expansions\" : 3,\n" + " \"minimum_should_match\" : \"3\",\n" @@ -527,7 +527,7 @@ void should_build_multi_match_query_with_custom_parameters() { dsl.namedArgument("analyzer", literal("keyword")), dsl.namedArgument("auto_generate_synonyms_phrase_query", literal("false")), dsl.namedArgument("cutoff_frequency", literal("4.3")), - dsl.namedArgument("fuzziness", literal("2")), + dsl.namedArgument("fuzziness", literal("AUTO:2,4")), dsl.namedArgument("fuzzy_transpositions", literal("false")), dsl.namedArgument("lenient", literal("false")), dsl.namedArgument("max_expansions", literal("3")), diff --git a/opensearch/src/test/java/org/opensearch/sql/opensearch/storage/script/filter/lucene/MultiMatchTest.java b/opensearch/src/test/java/org/opensearch/sql/opensearch/storage/script/filter/lucene/MultiMatchTest.java index 6f24c4f24c..51499faf03 100644 --- a/opensearch/src/test/java/org/opensearch/sql/opensearch/storage/script/filter/lucene/MultiMatchTest.java +++ b/opensearch/src/test/java/org/opensearch/sql/opensearch/storage/script/filter/lucene/MultiMatchTest.java @@ -74,7 +74,7 @@ static Stream> generateValidData() { List.of( dsl.namedArgument("fields", fields_value), dsl.namedArgument("query", query_value), - dsl.namedArgument("fuzziness", DSL.literal("4")) + dsl.namedArgument("fuzziness", DSL.literal("AUTO:2,4")) ), List.of( dsl.namedArgument("fields", fields_value), diff --git a/sql/src/test/java/org/opensearch/sql/sql/antlr/SQLSyntaxParserTest.java b/sql/src/test/java/org/opensearch/sql/sql/antlr/SQLSyntaxParserTest.java index 1969f845ef..8bacff00b3 100644 --- a/sql/src/test/java/org/opensearch/sql/sql/antlr/SQLSyntaxParserTest.java +++ b/sql/src/test/java/org/opensearch/sql/sql/antlr/SQLSyntaxParserTest.java @@ -187,7 +187,7 @@ public void can_parse_multi_match_relevance_function() { assertNotNull(parser.parse( "SELECT id FROM test WHERE" + " multi_match([\"Tags\" ^ 1.5, Title, `Body` 4.2], 'query', analyzer=keyword," - + "operator='AND', tie_breaker=0.3, type = \"most_fields\", fuzziness = 4)")); + + "operator='AND', tie_breaker=0.3, type = \"most_fields\", fuzziness = \"AUTO\")")); } @Test