diff options
author | Jon Bratseth <bratseth@gmail.com> | 2021-10-27 12:39:40 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2021-10-27 12:39:40 +0200 |
commit | 5edcd157eb99da504d96abd8687b24fdf448fabb (patch) | |
tree | ea218d7ea93942b08306fabcf47feee3a887c99b /container-search/src/main/java/com/yahoo/prelude/query/TermItem.java | |
parent | 71ee71009627591dd4f5d19db030df5d109c9043 (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.java | 26 |
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); + } + } |