aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/prelude
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/main/java/com/yahoo/prelude')
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/Item.java20
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/querytransform/RecallSearcher.java20
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/querytransform/StemmingSearcher.java2
3 files changed, 23 insertions, 19 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/Item.java b/container-search/src/main/java/com/yahoo/prelude/query/Item.java
index 8c154072a42..4f770ef6add 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/Item.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/Item.java
@@ -67,6 +67,7 @@ public abstract class Item implements Cloneable {
}
// These must match the definitions in searchlib/src/vespa/searchlib/parsequery/item_creator.h
+ @Deprecated // TODO: Remove on Vespa 9
public enum ItemCreator {
ORIG(0),
@@ -141,9 +142,8 @@ public abstract class Item implements Cloneable {
public abstract String getName();
/**
- * Sets whether this is a filter term.
- * This indicates that the term origins from the filter parameter in the search API.
- * The search backend does not handle filter terms any different than non-filter terms.
+ * Sets whether this is a filter term. Filter terms are treated just like other terms except that
+ * they will not be highlighted in dynamic summaries.
*/
public void setFilter(boolean filter) {
if (filter) {
@@ -158,12 +158,22 @@ public abstract class Item implements Cloneable {
return creator == ItemCreator.FILTER;
}
- /** Returns the item creator value. */
+ /**
+ * Returns the item creator value.
+ *
+ * @deprecated use isFilter(boolean)
+ */
+ @Deprecated // TODO: Remove on Vespa 9
public ItemCreator getCreator() {
return creator;
}
- /** Sets the item creator value. */
+ /**
+ * Sets the item creator value.
+ *
+ * @deprecated use setFilter(boolean)
+ */
+ @Deprecated // TODO: Remove on Vespa 9
public void setCreator(ItemCreator creator) {
this.creator = creator;
}
diff --git a/container-search/src/main/java/com/yahoo/prelude/querytransform/RecallSearcher.java b/container-search/src/main/java/com/yahoo/prelude/querytransform/RecallSearcher.java
index 98a8e5af00d..2c7d78c0671 100644
--- a/container-search/src/main/java/com/yahoo/prelude/querytransform/RecallSearcher.java
+++ b/container-search/src/main/java/com/yahoo/prelude/querytransform/RecallSearcher.java
@@ -100,22 +100,17 @@ public class RecallSearcher extends Searcher {
* Returns the first word item contained in the given item tree that is an instance of {@link WordItem} with the
* given word value.
*
- * @param root The root of the tree to check.
- * @param value The word to look for.
- * @return The first node found.
+ * @param root the root of the tree to check
+ * @param value the word to look for
+ * @return the first node found
*/
private static WordItem findOrigWordItem(Item root, String value) {
Deque<Item> stack = new ArrayDeque<>();
stack.push(root);
while (!stack.isEmpty()) {
Item item = stack.pop();
- if (item.getCreator() == Item.ItemCreator.ORIG &&
- item instanceof WordItem word)
- {
- if (word.getWord().equals(value)) {
- return word;
- }
- }
+ if (! item.isFilter() && item instanceof WordItem word && word.getWord().equals(value))
+ return word;
if (item instanceof CompositeItem lst) {
for (Iterator<Item> it = lst.getItemIterator(); it.hasNext();) {
stack.push(it.next());
@@ -128,16 +123,15 @@ public class RecallSearcher extends Searcher {
/**
* Marks all filter terms in the given query tree as unranked.
*
- * @param root The root of the tree to update.
+ * @param root the root of the tree to update
*/
private static void updateFilterTerms(Item root) {
Deque<Item> stack = new ArrayDeque<>();
stack.push(root);
while (!stack.isEmpty()) {
Item item = stack.pop();
- if (item.getCreator() == Item.ItemCreator.FILTER) {
+ if (item.isFilter())
item.setRanked(false);
- }
if (item instanceof CompositeItem lst) {
for (Iterator<Item> it = lst.getItemIterator(); it.hasNext();) {
stack.push(it.next());
diff --git a/container-search/src/main/java/com/yahoo/prelude/querytransform/StemmingSearcher.java b/container-search/src/main/java/com/yahoo/prelude/querytransform/StemmingSearcher.java
index 9bebaf98665..6aa262ca49e 100644
--- a/container-search/src/main/java/com/yahoo/prelude/querytransform/StemmingSearcher.java
+++ b/container-search/src/main/java/com/yahoo/prelude/querytransform/StemmingSearcher.java
@@ -375,7 +375,7 @@ public class StemmingSearcher extends Searcher {
private void copyAttributes(Item blockAsItem, Item replacement) {
copyWeight(blockAsItem, replacement);
- replacement.setCreator(blockAsItem.getCreator());
+ replacement.setFilter(blockAsItem.isFilter());
replacement.setRanked(blockAsItem.isRanked());
replacement.setPositionData(blockAsItem.usePositionData());
}