aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/prelude/query/TermItem.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2021-10-27 12:39:40 +0200
committerJon Bratseth <bratseth@gmail.com>2021-10-27 12:39:40 +0200
commit5edcd157eb99da504d96abd8687b24fdf448fabb (patch)
treeea218d7ea93942b08306fabcf47feee3a887c99b /container-search/src/main/java/com/yahoo/prelude/query/TermItem.java
parent71ee71009627591dd4f5d19db030df5d109c9043 (diff)
Always compare item content fully in Item.equals
Diffstat (limited to 'container-search/src/main/java/com/yahoo/prelude/query/TermItem.java')
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/TermItem.java26
1 files changed, 23 insertions, 3 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/TermItem.java b/container-search/src/main/java/com/yahoo/prelude/query/TermItem.java
index 2794c310010..9d74fdbefe5 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/TermItem.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/TermItem.java
@@ -1,11 +1,10 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.prelude.query;
-
import com.yahoo.prelude.query.textualrepresentation.Discloser;
import java.nio.ByteBuffer;
-
+import java.util.Objects;
/**
* Superclass of "leaf" conditions containing a single entity which is either matched in a field or not.
@@ -16,7 +15,7 @@ import java.nio.ByteBuffer;
public abstract class TermItem extends SimpleIndexedItem implements BlockItem {
/** Whether the term is from the raw query or is synthetic. */
- private final boolean isFromQuery;
+ private boolean isFromQuery;
/** Whether accent dropping should be performed */
private boolean normalizable = true;
@@ -70,6 +69,7 @@ public abstract class TermItem extends SimpleIndexedItem implements BlockItem {
* the superstring this substring was a part of, e.g the whole query string.
* If this did not originate directly from a user string, this is null.
*/
+ @Override
public Substring getOrigin() { return origin; }
/**
@@ -77,8 +77,13 @@ public abstract class TermItem extends SimpleIndexedItem implements BlockItem {
* Only terms from the user should be modified by query rewriters which attempts to improve the
* precision or recall of the user's query.
*/
+ @Override
public boolean isFromQuery() { return isFromQuery; }
+ public void setFromQuery(boolean isFromQuery) {
+ this.isFromQuery = isFromQuery;
+ }
+
@Override
public abstract boolean isWords();
@@ -112,4 +117,19 @@ public abstract class TermItem extends SimpleIndexedItem implements BlockItem {
public void setSegmentingRule(SegmentingRule segmentingRule) { this.segmentingRule = segmentingRule; }
+ @Override
+ public boolean equals(Object o) {
+ if ( ! super.equals(o)) return false;
+ var other = (TermItem)o;
+ if ( this.isFromQuery != other.isFromQuery) return false;
+ if ( this.normalizable != other.normalizable) return false;
+ if ( this.segmentingRule != other.segmentingRule) return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(super.hashCode(), isFromQuery, normalizable, segmentingRule);
+ }
+
}