summaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-08-15 17:42:02 +0200
committerGitHub <noreply@github.com>2022-08-15 17:42:02 +0200
commit480295e5bbabb06ff61130eac6f4b6eeefc8a14e (patch)
tree0b2d367878eefb8ca04724f7b4658d57715a8272 /container-search
parentaa89c25d0ed2e8b0390ef62c6e55feecdd4c7815 (diff)
Revert "Added defaultIndex processing for userInput items parsing"
Diffstat (limited to 'container-search')
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/parser/AbstractParser.java6
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/parser/AdvancedParser.java2
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/parser/AllParser.java8
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/parser/AnyParser.java4
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/parser/PhraseParser.java2
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/parser/SimpleParser.java12
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/parser/StructuredParser.java8
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/parser/TokenizeParser.java2
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/parser/WebParser.java4
-rw-r--r--container-search/src/test/java/com/yahoo/search/yql/UserInputTestCase.java33
10 files changed, 19 insertions, 62 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/parser/AbstractParser.java b/container-search/src/main/java/com/yahoo/prelude/query/parser/AbstractParser.java
index 55001ae5915..586d1d32d57 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/parser/AbstractParser.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/parser/AbstractParser.java
@@ -143,7 +143,7 @@ public abstract class AbstractParser implements CustomParser {
}
setState(parsingLanguage, indexFacts);
- Item root = parseItems(defaultIndexName);
+ Item root = parseItems();
if (filterToParse != null) {
AnyParser filterParser = new AnyParser(environment);
if (root == null) {
@@ -222,8 +222,8 @@ public abstract class AbstractParser implements CustomParser {
if (tokenOrNull == null) return false;
return kind.equals(tokenOrNull.kind);
}
-
- protected abstract Item parseItems(String defaultIndexName);
+
+ protected abstract Item parseItems();
/**
* Assigns the default index to query terms having no default index. The
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/parser/AdvancedParser.java b/container-search/src/main/java/com/yahoo/prelude/query/parser/AdvancedParser.java
index 3358075d670..690fc67af7e 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/parser/AdvancedParser.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/parser/AdvancedParser.java
@@ -20,7 +20,7 @@ public class AdvancedParser extends StructuredParser {
super(environment);
}
- protected Item parseItems(String defaultIndexName) {
+ protected Item parseItems() {
return advancedItems(true);
}
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/parser/AllParser.java b/container-search/src/main/java/com/yahoo/prelude/query/parser/AllParser.java
index 09caa72ca59..545bb8e777f 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/parser/AllParser.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/parser/AllParser.java
@@ -41,16 +41,16 @@ public class AllParser extends SimpleParser {
}
@Override
- protected Item parseItems(String defaultIndexName) {
+ protected Item parseItems() {
int position = tokens.getPosition();
try {
- return parseItemsBody(defaultIndexName);
+ return parseItemsBody();
} finally {
tokens.setPosition(position);
}
}
- protected Item parseItemsBody(String defaultIndexName) {
+ protected Item parseItemsBody() {
// Algorithm: Collect positive, negative, and and'ed items, then combine.
CompositeItem and = null;
NotItem not = null; // Store negatives here as we go
@@ -65,7 +65,7 @@ public class AllParser extends SimpleParser {
current = positiveItem();
if (current == null)
- current = indexableItem(defaultIndexName);
+ current = indexableItem();
if (current == null)
current = compositeItem();
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/parser/AnyParser.java b/container-search/src/main/java/com/yahoo/prelude/query/parser/AnyParser.java
index f4ff769ad05..e22043c6b8f 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/parser/AnyParser.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/parser/AnyParser.java
@@ -31,8 +31,8 @@ public class AnyParser extends SimpleParser {
super(environment);
}
- protected Item parseItems(String defaultIndexName) {
- return anyItems(true, defaultIndexName);
+ protected Item parseItems() {
+ return anyItems(true);
}
Item parseFilter(String filter, Language queryLanguage, IndexFacts.Session indexFacts) {
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/parser/PhraseParser.java b/container-search/src/main/java/com/yahoo/prelude/query/parser/PhraseParser.java
index 72eb56dd0fb..75edf9fbf5c 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/parser/PhraseParser.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/parser/PhraseParser.java
@@ -16,7 +16,7 @@ public class PhraseParser extends AbstractParser {
super(environment);
}
- protected Item parseItems(String defaultIndex) {
+ protected Item parseItems() {
return forcedPhrase();
}
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/parser/SimpleParser.java b/container-search/src/main/java/com/yahoo/prelude/query/parser/SimpleParser.java
index fafbf55a522..27bce6bd027 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/parser/SimpleParser.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/parser/SimpleParser.java
@@ -33,12 +33,12 @@ abstract class SimpleParser extends StructuredParser {
* If there's a explicit composite and some other terms,
* a rank terms combines them
*/
- protected Item anyItems(boolean topLevel, String defaultIndexName) {
+ protected Item anyItems(boolean topLevel) {
int position = tokens.getPosition();
Item item = null;
try {
- item = anyItemsBody(topLevel, defaultIndexName);
+ item = anyItemsBody(topLevel);
return item;
} finally {
if (item == null) {
@@ -47,11 +47,7 @@ abstract class SimpleParser extends StructuredParser {
}
}
- protected Item anyItems(boolean topLevel) {
- return anyItems(topLevel, null);
- }
-
- private Item anyItemsBody(boolean topLevel, String defaultIndexName) {
+ private Item anyItemsBody(boolean topLevel) {
Item topLevelItem = null;
NotItem not = null;
Item item = null;
@@ -92,7 +88,7 @@ abstract class SimpleParser extends StructuredParser {
}
if (item == null) {
- item = indexableItem(defaultIndexName);
+ item = indexableItem();
if (item != null) {
if (topLevelItem == null) {
topLevelItem = item;
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/parser/StructuredParser.java b/container-search/src/main/java/com/yahoo/prelude/query/parser/StructuredParser.java
index c668cf66447..f993c7a9e02 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/parser/StructuredParser.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/parser/StructuredParser.java
@@ -7,7 +7,6 @@ import com.yahoo.search.query.parser.ParserEnvironment;
import java.util.ArrayList;
import java.util.List;
-import java.util.Objects;
import static com.yahoo.prelude.query.parser.Token.Kind.*;
@@ -53,18 +52,11 @@ abstract class StructuredParser extends AbstractParser {
}
protected Item indexableItem() {
- return indexableItem(null);
- }
-
- protected Item indexableItem(String defaultIndexName) {
int position = tokens.getPosition();
Item item = null;
try {
String indexName = indexPrefix();
- if (Objects.isNull(indexName)) {
- indexName = defaultIndexName;
- }
setSubmodeFromIndex(indexName, indexFacts);
item = number();
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/parser/TokenizeParser.java b/container-search/src/main/java/com/yahoo/prelude/query/parser/TokenizeParser.java
index eefbe5fa0d0..dbbc321d057 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/parser/TokenizeParser.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/parser/TokenizeParser.java
@@ -22,7 +22,7 @@ public final class TokenizeParser extends AbstractParser {
}
@Override
- protected Item parseItems(String defaultIndex) {
+ protected Item parseItems() {
WeakAndItem weakAnd = new WeakAndItem();
Token token;
while (null != (token = tokens.next())) {
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/parser/WebParser.java b/container-search/src/main/java/com/yahoo/prelude/query/parser/WebParser.java
index 40497d94a6d..d7c7dec4798 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/parser/WebParser.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/parser/WebParser.java
@@ -28,7 +28,7 @@ public class WebParser extends AllParser {
}
@Override
- protected Item parseItemsBody(String defaultIndexName) {
+ protected Item parseItemsBody() {
// Algorithm: Collect positive, negative, and'ed and or'ed elements, then combine.
CompositeItem and = null;
OrItem or = null;
@@ -45,7 +45,7 @@ public class WebParser extends AllParser {
current = positiveItem();
if (current == null)
- current = indexableItem(defaultIndexName);
+ current = indexableItem();
if (current != null) {
if (and != null && (current instanceof WordItem) && "OR".equals(((WordItem)current).getRawWord())) {
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 1e3b52c23af..8fe451dd095 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
@@ -3,10 +3,7 @@ package com.yahoo.search.yql;
import static org.junit.jupiter.api.Assertions.*;
-import com.yahoo.prelude.Index;
-import com.yahoo.prelude.IndexFacts;
-import com.yahoo.prelude.IndexModel;
-import com.yahoo.prelude.SearchDefinition;
+import com.yahoo.search.query.QueryTree;
import org.apache.http.client.utils.URIBuilder;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
@@ -370,32 +367,4 @@ public class UserInputTestCase {
assertEquals("select * from sources * where text_field contains \"boom\"", query.yqlRepresentation());
}
- @Test
- void testUserInputWithPhraseSegmentingIndex() {
- execution = new Execution(searchChain, Execution.Context.createContextStub(createIndexFacts(true)));
- URIBuilder builder = searchUri();
- builder.setParameter("wql", "foo&bar");
- builder.setParameter("yql", "select * from sources * where ([{\"defaultIndex\": \"text_field\",\"grammar\": \"any\"}]userInput(@wql))");
- Query query = searchAndAssertNoErrors(builder);
- assertEquals("select * from sources * where text_field contains phrase(\"foo\", \"bar\")", query.yqlRepresentation());
- }
-
- @Test
- void testUserInputWithNonPhraseSegmentingIndex() {
- execution = new Execution(searchChain, Execution.Context.createContextStub(createIndexFacts(false)));
- URIBuilder builder = searchUri();
- builder.setParameter("wql", "foo&bar");
- builder.setParameter("yql", "select * from sources * where ([{\"defaultIndex\": \"text_field\",\"grammar\": \"any\"}]userInput(@wql))");
- Query query = searchAndAssertNoErrors(builder);
- assertEquals("select * from sources * where (text_field contains \"foo\" AND text_field contains \"bar\")", query.yqlRepresentation());
- }
-
- private IndexFacts createIndexFacts(boolean phraseSegmenting) {
- SearchDefinition sd = new SearchDefinition("sources");
- Index test = new Index("text_field");
- test.setPhraseSegmenting(phraseSegmenting);
- sd.addIndex(test);
- return new IndexFacts(new IndexModel(sd));
- }
-
}