diff options
author | Harald Musum <musum@verizonmedia.com> | 2022-06-09 23:54:44 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-09 23:54:44 +0200 |
commit | 1d164943ec95e1492d0b2894657373a01dc0dca7 (patch) | |
tree | d7d2f647e556fd713f1678b76af0c2c151c4167f /container-search/src/main/java/com/yahoo | |
parent | d204179b218af2fdf4b251ede3a465ffabbf6557 (diff) |
Revert "Bratseth/weakand by default take 2"
Diffstat (limited to 'container-search/src/main/java/com/yahoo')
5 files changed, 9 insertions, 7 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/parser/AllParser.java b/container-search/src/main/java/com/yahoo/prelude/query/parser/AllParser.java index 8cc820d8f76..80a2320b039 100644 --- a/container-search/src/main/java/com/yahoo/prelude/query/parser/AllParser.java +++ b/container-search/src/main/java/com/yahoo/prelude/query/parser/AllParser.java @@ -55,6 +55,7 @@ public class AllParser extends SimpleParser { CompositeItem and = null; NotItem not = null; // Store negatives here as we go Item current; + // Find all items do { current = negativeItem(); diff --git a/container-search/src/main/java/com/yahoo/prelude/query/parser/SimpleParser.java b/container-search/src/main/java/com/yahoo/prelude/query/parser/SimpleParser.java index 27bce6bd027..020d93d951c 100644 --- a/container-search/src/main/java/com/yahoo/prelude/query/parser/SimpleParser.java +++ b/container-search/src/main/java/com/yahoo/prelude/query/parser/SimpleParser.java @@ -51,6 +51,7 @@ abstract class SimpleParser extends StructuredParser { Item topLevelItem = null; NotItem not = null; Item item = null; + do { item = positiveItem(); if (item != null) { 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..09be9b3728b 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,7 +14,6 @@ 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; @@ -27,6 +26,8 @@ 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 @@ -48,7 +49,6 @@ 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) || (item instanceof WeakAndItem)) { + } else if ((item instanceof AndItem) || (item instanceof NearItem)) { 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) || (item instanceof WeakAndItem)) { + } else if ((item instanceof AndItem) || (item instanceof NearItem)) { return Recall.RECALLS_NOTHING; } else if (item instanceof RankItem) { if (i == 0) return Recall.RECALLS_NOTHING; diff --git a/container-search/src/main/java/com/yahoo/search/query/Model.java b/container-search/src/main/java/com/yahoo/search/query/Model.java index dbaab3045bf..1b12f3f3bb8 100644 --- a/container-search/src/main/java/com/yahoo/search/query/Model.java +++ b/container-search/src/main/java/com/yahoo/search/query/Model.java @@ -86,7 +86,7 @@ public class Model implements Cloneable { private Locale locale = null; private QueryTree queryTree = null; // The query tree to execute. This is lazily created from the program private String defaultIndex = null; - private Query.Type type = Query.Type.WEAKAND; + private Query.Type type = Query.Type.ALL; private Query parent; private Set<String> sources = new LinkedHashSet<>(); private Set<String> restrict = new LinkedHashSet<>(); diff --git a/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java b/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java index a149ae9323a..15e3b7aab14 100644 --- a/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java +++ b/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java @@ -740,7 +740,7 @@ public class YqlParser implements Parser { if (allowEmpty && (wordData == null || wordData.isEmpty())) return new NullItem(); String grammar = getAnnotation(ast, USER_INPUT_GRAMMAR, String.class, - Query.Type.WEAKAND.toString(), "grammar for handling user input"); + Query.Type.ALL.toString(), "grammar for handling user input"); String defaultIndex = getAnnotation(ast, USER_INPUT_DEFAULT_INDEX, String.class, "default", "default index for user input terms"); Language language = decideParsingLanguage(ast, wordData); @@ -1448,7 +1448,7 @@ public class YqlParser implements Parser { "setting for whether to use substring match of input data"); boolean exact = exactMatch != null ? exactMatch : indexFactsSession.getIndex(indexNameExpander.expand(field)).isExact(); String grammar = getAnnotation(ast, USER_INPUT_GRAMMAR, String.class, - Query.Type.WEAKAND.toString(), "grammar for handling word input"); + Query.Type.ALL.toString(), "grammar for handling word input"); Preconditions.checkArgument((prefixMatch ? 1 : 0) + (substrMatch ? 1 : 0) + (suffixMatch ? 1 : 0) < 2, "Only one of prefix, substring and suffix can be set."); |