summaryrefslogtreecommitdiffstats
path: root/predicate-search/src/main/java/com/yahoo/search/predicate/Hit.java
diff options
context:
space:
mode:
Diffstat (limited to 'predicate-search/src/main/java/com/yahoo/search/predicate/Hit.java')
-rw-r--r--predicate-search/src/main/java/com/yahoo/search/predicate/Hit.java68
1 files changed, 68 insertions, 0 deletions
diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/Hit.java b/predicate-search/src/main/java/com/yahoo/search/predicate/Hit.java
new file mode 100644
index 00000000000..6568ef928e3
--- /dev/null
+++ b/predicate-search/src/main/java/com/yahoo/search/predicate/Hit.java
@@ -0,0 +1,68 @@
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.search.predicate;
+
+import com.google.common.annotations.Beta;
+
+/**
+ * Represents a hit from the predicate search algorithm.
+ * Each hit is associated with a subquery bitmap,
+ * indicating which subqueries the hit represents.
+ *
+ * @author <a href="mailto:magnarn@yahoo-inc.com">Magnar Nedland</a>
+ */
+@Beta
+public class Hit implements Comparable<Hit> {
+ private final int docId;
+ private final long subquery;
+
+ public Hit(int docId) {
+ this(docId, SubqueryBitmap.DEFAULT_VALUE);
+ }
+
+ public Hit(int docId, long subquery) {
+ this.docId = docId;
+ this.subquery = subquery;
+ }
+
+ @Override
+ public String toString() {
+ if (subquery == SubqueryBitmap.DEFAULT_VALUE) {
+ return "" + docId;
+ } else {
+ return "[" + docId + ",0x" + Long.toHexString(subquery) + "]";
+ }
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ Hit hit = (Hit) o;
+
+ if (docId != hit.docId) return false;
+ if (subquery != hit.subquery) return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = docId;
+ result = 31 * result + (int) (subquery ^ (subquery >>> 32));
+ return result;
+ }
+
+ public int getDocId() {
+ return docId;
+ }
+
+ public long getSubquery() {
+ return subquery;
+ }
+
+ @Override
+ public int compareTo(Hit o) {
+ return Integer.compare(docId, o.docId);
+ }
+}