aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2022-08-16 13:52:12 +0200
committerJon Bratseth <bratseth@gmail.com>2022-08-16 13:52:12 +0200
commit5d7a6831032badd54854e9ac261bc370e8e740e7 (patch)
treef9e31a459a659941347f69718872d5296c14a8a6
parent6cc84e06d7d24e68c83ba5a3550e64d9fb917096 (diff)
Cannonicalize
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/parser/AbstractParser.java3
-rw-r--r--container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java30
2 files changed, 30 insertions, 3 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..9f57512f657 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
@@ -133,6 +133,9 @@ public abstract class AbstractParser implements CustomParser {
IndexFacts.Session indexFacts, String defaultIndexName, Parsable parsable) {
if (queryToParse == null) return null;
+ if (defaultIndexName != null)
+ defaultIndexName = indexFacts.getCanonicName(defaultIndexName);
+
tokenize(queryToParse, defaultIndexName, indexFacts, parsingLanguage);
if (parsingLanguage == null && parsable != null) {
diff --git a/container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java b/container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java
index f8a77445a40..a722552b7d2 100644
--- a/container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java
@@ -452,10 +452,34 @@ public class QueryTestCase {
@Test
void testDefaultIndex() {
- Query q = new Query("?query=hi%20hello%20keyword:kanoo%20" +
- "default:munkz%20%22phrases+too%22&default-index=def");
+ Query q = new Query("?query=hi%20hello%20keyword:kanoo%20default:munkz%20%22phrases+too%22&default-index=def");
assertEquals("WEAKAND(100) def:hi def:hello keyword:kanoo default:munkz def:\"phrases too\"",
- q.getModel().getQueryTree().toString());
+ q.getModel().getQueryTree().toString());
+ }
+
+ @Test
+ void testDefaultIndexAlias() {
+ SearchDefinition test = new SearchDefinition("test");
+ Index year = new Index("year");
+ year.setNumerical(true);
+ year.addAlias("yearalias");
+ test.addIndex(year);
+ test.addAlias("yearalias", "year");
+ IndexModel indexModel = new IndexModel(test);
+
+ {
+ Query q = new Query("?default-index=year&type=all");
+ q.getModel().setExecution(new Execution(Execution.Context.createContextStub(new IndexFacts(indexModel))));
+ q.getModel().setQueryString("2000");
+ assertEquals("select * from sources * where year = 2000", q.yqlRepresentation());
+ }
+
+ {
+ Query q = new Query("?default-index=yearalias&type=all");
+ q.getModel().setExecution(new Execution(Execution.Context.createContextStub(new IndexFacts(indexModel))));
+ q.getModel().setQueryString("2000");
+ assertEquals("select * from sources * where year = 2000", q.yqlRepresentation());
+ }
}
@Test