aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/test
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2022-08-19 11:52:10 +0200
committerJon Bratseth <bratseth@gmail.com>2022-08-19 11:52:10 +0200
commit7a6b75c6d8769e21de50cc620abcd5263fb8d2f7 (patch)
tree4adbffbecb7c17990faa33cf61fea99852c6556d /container-search/src/test
parenta520fda96ce01c92f28ea4c6b700a39396544d2e (diff)
No defaultIndex in filter
Diffstat (limited to 'container-search/src/test')
-rw-r--r--container-search/src/test/java/com/yahoo/search/test/QueryWithFilterTestCase.java69
1 files changed, 69 insertions, 0 deletions
diff --git a/container-search/src/test/java/com/yahoo/search/test/QueryWithFilterTestCase.java b/container-search/src/test/java/com/yahoo/search/test/QueryWithFilterTestCase.java
new file mode 100644
index 00000000000..082cede5ff4
--- /dev/null
+++ b/container-search/src/test/java/com/yahoo/search/test/QueryWithFilterTestCase.java
@@ -0,0 +1,69 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.search.test;
+
+import com.yahoo.language.Language;
+import com.yahoo.language.Linguistics;
+import com.yahoo.language.simple.SimpleLinguistics;
+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;
+import com.yahoo.search.searchchain.Execution;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+/**
+ * @author bratseth
+ */
+public class QueryWithFilterTestCase {
+
+ /** Tests that default-index is not applied to ALL filters */
+ @Test
+ void testRankFilter() {
+ Query q = newQueryFromEncoded("?query=trump" +
+ "&model.type=all" +
+ "&model.defaultIndex=text" +
+ "&filter=filterattribute%3Afrontpage_US_en-US");
+ assertEquals("RANK text:trump |filterattribute:frontpage_US_en-US",
+ q.getModel().getQueryTree().toString());
+ }
+
+ /** Tests that default-index is not applied to NOT filters */
+ @Test
+ void testAndFilter() {
+ Query q = newQueryFromEncoded("?query=trump" +
+ "&model.type=all" +
+ "&model.defaultIndex=text" +
+ "&filter=%2B%28filterattribute%3Afrontpage_US_en-US%29");
+ assertEquals("AND text:trump |filterattribute:frontpage_US_en-US",
+ q.getModel().getQueryTree().toString());
+ }
+
+ private Query newQueryFromEncoded(String queryString) {
+ return newQueryFromEncoded(queryString, null, new SimpleLinguistics());
+ }
+
+ private Query newQueryFromEncoded(String encodedQueryString, Language language, Linguistics linguistics) {
+ Query query = new Query(encodedQueryString);
+ query.getModel().setExecution(new Execution(Execution.Context.createContextStub(createIndexFacts(),
+ linguistics)));
+ query.getModel().setLanguage(language);
+ return query;
+ }
+
+ private IndexFacts createIndexFacts() {
+ SearchDefinition sd = new SearchDefinition("test");
+ sd.addIndex(new Index("test"));
+ sd.addIndex(attribute("filterattribute"));
+ return new IndexFacts(new IndexModel(sd));
+ }
+
+ private Index attribute(String name) {
+ Index index = new Index(name);
+ index.setExact(true, null);
+ return index;
+ }
+
+}