diff options
author | Jon Bratseth <bratseth@gmail.com> | 2022-06-10 00:29:33 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2022-06-10 00:29:33 +0200 |
commit | 1e985eac62bb7cfb3d182362ffe97f70dfcea8fa (patch) | |
tree | a45d8eb5f9cb59f50569b931b2a86c92337e18bc /container-search | |
parent | e5f034271514570b4590a3fa76c91dbdb1f7515f (diff) |
Handle lone children
Diffstat (limited to 'container-search')
-rw-r--r-- | container-search/src/main/java/com/yahoo/prelude/querytransform/QueryRewrite.java | 4 | ||||
-rw-r--r-- | container-search/src/test/java/com/yahoo/prelude/querytransform/test/QueryRewriteTestCase.java | 1 |
2 files changed, 3 insertions, 2 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 bf814eef057..3af9b756e52 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 @@ -171,7 +171,7 @@ public class QueryRewrite { removeOtherNonrankedChildren(item, i); recall = Recall.RECALLS_EVERYTHING; } else if ((item instanceof AndItem) || (item instanceof NearItem) || (item instanceof WeakAndItem)) { - if ( ! isRanked(item.getItem(i))) { + if ( ! isRanked(item.getItem(i)) && item.items().size() > 1) { item.removeItem(i); } } else if (item instanceof RankItem) { @@ -181,7 +181,7 @@ public class QueryRewrite { } break; case RECALLS_NOTHING: - if ((item instanceof OrItem) || (item instanceof EquivItem)) { + if ((item instanceof OrItem) || (item instanceof EquivItem) && item.items().size() > 1) { item.removeItem(i); } else if ((item instanceof AndItem) || (item instanceof NearItem) || (item instanceof WeakAndItem)) { return Recall.RECALLS_NOTHING; 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 626c145875c..b8c5244fb98 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 @@ -29,6 +29,7 @@ public class QueryRewriteTestCase { Query query = new Query("?query=sddocname:music"); query.getModel().setRestrict("music"); QueryRewrite.optimizeByRestrict(query); + assertEquals("WEAKAND(100) sddocname:music", query.getModel().getQueryTree().toString()); } @Test |