summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/prelude/querytransform
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2022-06-09 22:31:44 +0200
committerJon Bratseth <bratseth@gmail.com>2022-06-09 22:31:44 +0200
commit0a13efef3049551299950226e461a3b275bf6962 (patch)
tree5e7737d973cee7a8d09aa51bcdb6809e7636e688 /container-search/src/main/java/com/yahoo/prelude/querytransform
parent2a256fc1481f8460d519ccf3d9db6ed6e59ca452 (diff)
Support WeakAnd in QueryRewrite
Diffstat (limited to 'container-search/src/main/java/com/yahoo/prelude/querytransform')
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/querytransform/QueryRewrite.java8
1 files changed, 4 insertions, 4 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/querytransform/QueryRewrite.java b/container-search/src/main/java/com/yahoo/prelude/querytransform/QueryRewrite.java
index 09be9b3728b..bf814eef057 100644
--- a/container-search/src/main/java/com/yahoo/prelude/querytransform/QueryRewrite.java
+++ b/container-search/src/main/java/com/yahoo/prelude/querytransform/QueryRewrite.java
@@ -14,6 +14,7 @@ import com.yahoo.prelude.query.OrItem;
import com.yahoo.prelude.query.RankItem;
import com.yahoo.prelude.query.SimpleIndexedItem;
import com.yahoo.prelude.query.SubstringItem;
+import com.yahoo.prelude.query.WeakAndItem;
import com.yahoo.search.Query;
import com.yahoo.search.query.Model;
import com.yahoo.search.result.Hit;
@@ -26,8 +27,6 @@ public class QueryRewrite {
private enum Recall { RECALLS_EVERYTHING, RECALLS_NOTHING, UNKNOWN_RECALL }
- // ------------------- Start public API
-
/**
* Optimize multiple NotItems under and or by collapsing them in to one and leaving
* the positive ones behind in its place and moving itself with the original and as its positive item
@@ -49,6 +48,7 @@ public class QueryRewrite {
return;
}
Item root = query.getModel().getQueryTree().getRoot();
+
if (optimizeByRestrict(root, query.getModel().getRestrict().iterator().next()) == Recall.RECALLS_NOTHING) {
query.getModel().getQueryTree().setRoot(new NullItem());
}
@@ -170,7 +170,7 @@ public class QueryRewrite {
if ((item instanceof OrItem) || (item instanceof EquivItem)) {
removeOtherNonrankedChildren(item, i);
recall = Recall.RECALLS_EVERYTHING;
- } else if ((item instanceof AndItem) || (item instanceof NearItem)) {
+ } else if ((item instanceof AndItem) || (item instanceof NearItem) || (item instanceof WeakAndItem)) {
if ( ! isRanked(item.getItem(i))) {
item.removeItem(i);
}
@@ -183,7 +183,7 @@ public class QueryRewrite {
case RECALLS_NOTHING:
if ((item instanceof OrItem) || (item instanceof EquivItem)) {
item.removeItem(i);
- } else if ((item instanceof AndItem) || (item instanceof NearItem)) {
+ } else if ((item instanceof AndItem) || (item instanceof NearItem) || (item instanceof WeakAndItem)) {
return Recall.RECALLS_NOTHING;
} else if (item instanceof RankItem) {
if (i == 0) return Recall.RECALLS_NOTHING;