summaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2022-11-02 10:35:48 +0100
committerJon Bratseth <bratseth@gmail.com>2022-11-02 10:35:48 +0100
commit122437e086376bcc6e44cf13ec071825519852c9 (patch)
tree75eb02aaef341b44b01c16e7cb619a3fc352dd43 /container-search
parent82a57bbed60b624999da93f18eb05746d0ede3f7 (diff)
Propagate targetHits in tokenize
Diffstat (limited to 'container-search')
-rw-r--r--container-search/src/main/java/com/yahoo/search/yql/YqlParser.java7
-rw-r--r--container-search/src/test/java/com/yahoo/search/yql/UserInputTestCase.java7
-rw-r--r--container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java6
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());