diff options
3 files changed, 10 insertions, 10 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java b/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java index 1203f69dd3c..76ceb60b3d5 100644 --- a/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java +++ b/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java @@ -132,7 +132,7 @@ public class YqlParser implements Parser { public static final String USER_INPUT_LANGUAGE = "language"; private static final String USER_INPUT_GRAMMAR_RAW = "raw"; private static final String USER_INPUT_GRAMMAR_SEGMENT = "segment"; - private static final String USER_INPUT_GRAMMAR_WEAKAND = "weakAnd"; + private static final Set<String> WEAKAND_GRAMMARS = Set.of("weakAnd", "tokenize"); private static final String USER_INPUT = "userInput"; private static final String USER_QUERY = "userQuery"; private static final String NON_EMPTY = "nonEmpty"; @@ -731,8 +731,9 @@ public class YqlParser implements Parser { } // Set grammar-specific annotations - if (USER_INPUT_GRAMMAR_WEAKAND.equals(grammar) && item instanceof WeakAndItem weakAndItem) { - weakAndItem.setN(getAnnotation(ast, TARGET_HITS, Integer.class, WeakAndItem.defaultN, "'targetHits' (N) for weak and")); + if (WEAKAND_GRAMMARS.contains(grammar) && item instanceof WeakAndItem weakAndItem) { + weakAndItem.setN(getAnnotation(ast, TARGET_HITS, Integer.class, WeakAndItem.defaultN, + "'targetHits' (N) for weak and")); } return item; } diff --git a/container-search/src/test/java/com/yahoo/search/yql/UserInputTestCase.java b/container-search/src/test/java/com/yahoo/search/yql/UserInputTestCase.java index 858d5a16352..d3c77d2ba66 100644 --- a/container-search/src/test/java/com/yahoo/search/yql/UserInputTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/yql/UserInputTestCase.java @@ -91,9 +91,14 @@ public class UserInputTestCase { @Test void testUserInputSettingTargetHits() { + assertTargetHitsIsPropagatedInUserInput("weakAnd"); + assertTargetHitsIsPropagatedInUserInput("tokenize"); + } + + private void assertTargetHitsIsPropagatedInUserInput(String grammar) { URIBuilder builder = searchUri(); builder.setParameter("yql", - "select * from sources * where {grammar: \"weakAnd\", targetHits: 17, defaultIndex: \"f\"}userInput(\"a test\")"); + "select * from sources * where {grammar: \"" + grammar + "\", targetHits: 17, defaultIndex: \"f\"}userInput(\"a test\")"); Query query = searchAndAssertNoErrors(builder); assertEquals("select * from sources * where ({targetNumHits: 17}weakAnd(f contains \"a\", f contains \"test\"))", query.yqlRepresentation()); WeakAndItem weakAnd = (WeakAndItem)query.getModel().getQueryTree().getRoot(); diff --git a/container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java b/container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java index a1dad201958..c15c3b2c5ea 100644 --- a/container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java @@ -446,12 +446,6 @@ public class YqlParserTestCase { } @Test - void testTokenizeGrammar() { - Item root = parse("select foo from bar where ({grammar: \"tokenize\", targetHits: 10, defaultIndex: \"default\"}userInput(\"this is a test\"))").getRoot(); - assertEquals("WEAKAND(100) default:this default:is default:a default:test", root.toString()); - } - - @Test void testAccentDropping() { assertFalse(getRootWord("select foo from bar where baz contains " + "( {accentDrop: false} \"colors\")").isNormalizable()); |