aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/test/java/com/yahoo/prelude/querytransform/test/QueryRewriteTestCase.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2017-10-18 15:20:26 +0200
committerJon Bratseth <bratseth@yahoo-inc.com>2017-10-18 15:20:26 +0200
commit30696b58ca0f11d7a7de05ea0707318de3d1bef7 (patch)
tree280c78facd210bd85958cc60003f2be4740e94d8 /container-search/src/test/java/com/yahoo/prelude/querytransform/test/QueryRewriteTestCase.java
parent402ea31a2b4b1161efb3c2a9675f712a8c2b6718 (diff)
Remove unranked items not contributing to recall
Diffstat (limited to 'container-search/src/test/java/com/yahoo/prelude/querytransform/test/QueryRewriteTestCase.java')
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/querytransform/test/QueryRewriteTestCase.java19
1 files changed, 16 insertions, 3 deletions
diff --git a/container-search/src/test/java/com/yahoo/prelude/querytransform/test/QueryRewriteTestCase.java b/container-search/src/test/java/com/yahoo/prelude/querytransform/test/QueryRewriteTestCase.java
index 7322b3da6b8..11922cf640a 100644
--- a/container-search/src/test/java/com/yahoo/prelude/querytransform/test/QueryRewriteTestCase.java
+++ b/container-search/src/test/java/com/yahoo/prelude/querytransform/test/QueryRewriteTestCase.java
@@ -3,6 +3,7 @@ package com.yahoo.prelude.querytransform.test;
import com.yahoo.prelude.query.AndItem;
import com.yahoo.prelude.query.NotItem;
+import com.yahoo.prelude.query.OrItem;
import com.yahoo.prelude.query.WordItem;
import com.yahoo.prelude.querytransform.QueryRewrite;
import com.yahoo.search.Query;
@@ -33,8 +34,13 @@ public class QueryRewriteTestCase {
@Test
public void testRestrictRewriteDoesNotRemoveRankContributingTerms() {
- assertRewritten("sddocname:per OR foo OR bar", "per", "OR sddocname:per foo bar");
+ Query query = query("sddocname:per OR foo OR bar", "per");
+ assertRewritten(query, "OR sddocname:per foo bar");
+ ((OrItem)query.getModel().getQueryTree().getRoot()).getItem(2).setRanked(false); // set 'bar' unranked
+ assertRewritten(query, "OR sddocname:per foo");
+
assertRewritten("sddocname:per OR foo OR (bar AND fuz)", "per", "OR sddocname:per foo (AND bar fuz)");
+
}
@Test
@@ -72,8 +78,15 @@ public class QueryRewriteTestCase {
assertRewritten("sddocname:per&filter=abc", "per", "RANK sddocname:per |abc");
}
- private static void assertRewritten(String queryParam, String restrictParam, String expectedOptimizedQuery) {
- Query query = new Query("?type=adv&query=" + queryParam.replace(" ", "%20") + "&restrict=" + restrictParam);
+ private static Query query(String queryString, String restrict) {
+ return new Query("?type=adv&query=" + queryString.replace(" ", "%20") + "&restrict=" + restrict);
+ }
+
+ private static void assertRewritten(String query, String restrict, String expectedOptimizedQuery) {
+ assertRewritten(query(query, restrict), expectedOptimizedQuery);
+ }
+
+ private static void assertRewritten(Query query, String expectedOptimizedQuery) {
QueryRewrite.optimizeByRestrict(query);
QueryRewrite.collapseSingleComposites(query);
assertEquals(expectedOptimizedQuery, query.getModel().getQueryTree().toString());