diff options
Diffstat (limited to 'predicate-search')
37 files changed, 109 insertions, 42 deletions
diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/Config.java b/predicate-search/src/main/java/com/yahoo/search/predicate/Config.java index 094e0c068eb..f96f00eff6c 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/Config.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/Config.java @@ -14,6 +14,7 @@ import java.io.IOException; */ @Beta public class Config { + public final int arity; public final long lowerBound; public final long upperBound; @@ -72,4 +73,5 @@ public class Config { } } + } 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 index e8239a86ebf..c1fc6d9adbc 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/Hit.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/Hit.java @@ -8,10 +8,11 @@ import com.google.common.annotations.Beta; * 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> + * @author Magnar Nedland */ @Beta public class Hit implements Comparable<Hit> { + private final int docId; private final long subquery; @@ -65,4 +66,5 @@ public class Hit implements Comparable<Hit> { public int compareTo(Hit o) { return Integer.compare(docId, o.docId); } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/PredicateIndex.java b/predicate-search/src/main/java/com/yahoo/search/predicate/PredicateIndex.java index 0af576b3813..e6643fce824 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/PredicateIndex.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/PredicateIndex.java @@ -32,11 +32,12 @@ import java.util.stream.Stream; * Note that the {@link PredicateIndex} is thread-safe, but a {@link Searcher} is not. * Each thread <strong>must</strong> use its own searcher. * </p> - * @author <a href="mailto:magnarn@yahoo-inc.com">Magnar Nedland</a> + * @author Magnar Nedland * @author bjorncs */ @Beta public class PredicateIndex { + private static final int SERIALIZATION_FORMAT_VERSION = 3; private final PredicateRangeTermExpander expander; @@ -222,4 +223,5 @@ public class PredicateIndex { } } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/PredicateIndexBuilder.java b/predicate-search/src/main/java/com/yahoo/search/predicate/PredicateIndexBuilder.java index fb9cc2f9011..1b92c96aa58 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/PredicateIndexBuilder.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/PredicateIndexBuilder.java @@ -71,7 +71,7 @@ public class PredicateIndexBuilder { /** * Creates a PredicateIndexBuilder with default upper and lower bounds. * - * @param arity The arity to use when indexing range predicates. + * @param arity the arity to use when indexing range predicates. * Small arity gives smaller index, but more expensive searches. */ public PredicateIndexBuilder(int arity) { @@ -83,10 +83,10 @@ public class PredicateIndexBuilder { * Limiting the range of possible values in range predicates reduces index size * and increases search performance. * - * @param arity The arity to use when indexing range predicates. + * @param arity the arity to use when indexing range predicates. * Small arity gives smaller index, but more expensive searches. - * @param lowerBound The lower bound for the range of values used by range predicates. - * @param upperBound The upper bound for the range of values used by range predicates. + * @param lowerBound the lower bound for the range of values used by range predicates + * @param upperBound the upper bound for the range of values used by range predicates */ public PredicateIndexBuilder(int arity, long lowerBound, long upperBound) { this(new Config.Builder().setArity(arity).setLowerBound(lowerBound).setUpperBound(upperBound).build()); @@ -95,7 +95,7 @@ public class PredicateIndexBuilder { /** * Creates a PredicateIndexBuilder based on a Config object. * - * @param config Configuration for the PredicateIndexBuilder. + * @param config configuration for the PredicateIndexBuilder */ public PredicateIndexBuilder(Config config) { this.config = config; @@ -106,8 +106,8 @@ public class PredicateIndexBuilder { /** * Indexes a predicate with the given id. * - * @param docId A 32-bit document id, returned in the Hit objects when the predicate matches. - * @param predicate The predicate to index. + * @param docId a 32-bit document id, returned in the Hit objects when the predicate matches + * @param predicate the predicate to index */ public void indexDocument(int docId, Predicate predicate) { if (documentIdCounter == Integer.MAX_VALUE) { @@ -213,8 +213,9 @@ public class PredicateIndexBuilder { } /** - * Retrieve metrics about the current index. - * @return An object containing metrics. + * Retrieves metrics about the current index. + * + * @return an object containing metrics */ public PredicateIndexStats getStats() { return new PredicateIndexStats(zeroConstraintDocuments, intervalIndexBuilder, @@ -266,4 +267,5 @@ public class PredicateIndexBuilder { .collect(joining("\n")); } } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/PredicateQuery.java b/predicate-search/src/main/java/com/yahoo/search/predicate/PredicateQuery.java index 17459f8e5ca..839e00618f1 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/PredicateQuery.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/PredicateQuery.java @@ -9,7 +9,7 @@ import java.util.List; /** * Represents a query in the form of a set of boolean variables that are considered true. * - * @author <a href="mailto:magnarn@yahoo-inc.com">Magnar Nedland</a> + * @author Magnar Nedland * @author bjorncs */ @Beta @@ -19,15 +19,18 @@ public class PredicateQuery { private final ArrayList<RangeFeature> rangeFeatures = new ArrayList<>(); /** - * Adds a feature to the query. - * @param key Feature key - * @param value Feature value + * Adds a feature to the query + * + * @param key a feature key + * @param value a feature value */ public void addFeature(String key, String value) { addFeature(key, value, SubqueryBitmap.DEFAULT_VALUE); } + /** * Adds a feature to the query, e.g. gender = male. + * * @param key Feature key * @param value Feature value * @param subqueryBitMap The subquery bitmap for which this term is true @@ -35,27 +38,28 @@ public class PredicateQuery { public void addFeature(String key, String value, long subqueryBitMap) { features.add(new Feature(key, value, subqueryBitMap)); } + public void addRangeFeature(String key, long value) { addRangeFeature(key, value, SubqueryBitmap.DEFAULT_VALUE);} + /** * Adds a range feature to the query, e.g. age = 25. - * @param key Feature key - * @param value Feature value - * @param subqueryBitMap The subquery bitmap for which this term is true + * + * @param key a feature key + * @param value a feature value + * @param subqueryBitMap the subquery bitmap for which this term is true */ public void addRangeFeature(String key, long value, long subqueryBitMap) { rangeFeatures.add(new RangeFeature(key, value, subqueryBitMap)); } - /** - * @return A list of features - */ + + /** Returns a list of features */ public List<Feature> getFeatures() { return features; } - /** - * @return A list of range features - */ + /** Returns a list of range features */ public List<RangeFeature> getRangeFeatures() { return rangeFeatures; } public static class Feature { + public final String key; public final String value; public final long subqueryBitmap; @@ -67,9 +71,11 @@ public class PredicateQuery { this.value = value; this.key = key; } + } public static class RangeFeature { + public final String key; public final long value; public final long subqueryBitmap; @@ -79,6 +85,7 @@ public class PredicateQuery { this.value = value; this.subqueryBitmap = subqueryBitmap; } + } } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/annotator/PredicateTreeAnalyzer.java b/predicate-search/src/main/java/com/yahoo/search/predicate/annotator/PredicateTreeAnalyzer.java index eca9ab3fc00..af3d4960f16 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/annotator/PredicateTreeAnalyzer.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/annotator/PredicateTreeAnalyzer.java @@ -27,7 +27,7 @@ public class PredicateTreeAnalyzer { /** * @param predicate The predicate tree. - * @return A result object containing the min-feature value, the tree size and sub-tree sizes. + * @return a result object containing the min-feature value, the tree size and sub-tree sizes. */ public static PredicateTreeAnalyzerResult analyzePredicateTree(Predicate predicate) { AnalyzerContext context = new AnalyzerContext(); @@ -145,4 +145,5 @@ public class PredicateTreeAnalyzer { // Does the tree contain any Negation nodes? public boolean hasNegationPredicate = false; } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/annotator/PredicateTreeAnnotations.java b/predicate-search/src/main/java/com/yahoo/search/predicate/annotator/PredicateTreeAnnotations.java index dab67ff9ffa..5e1fda41571 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/annotator/PredicateTreeAnnotations.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/annotator/PredicateTreeAnnotations.java @@ -11,9 +11,10 @@ import java.util.Map; * Holds annotations for all the features of a predicate. * This is sufficient information to insert the predicate into a PredicateIndex. * - * @author <a href="mailto:magnarn@yahoo-inc.com">Magnar Nedland</a> + * @author Magnar Nedland */ public class PredicateTreeAnnotations { + public final int minFeature; public final int intervalEnd; public final Map<Long, List<Integer>> intervalMap; @@ -32,4 +33,5 @@ public class PredicateTreeAnnotations { this.boundsMap = boundsMap; this.featureConjunctions = featureConjunctions; } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/annotator/PredicateTreeAnnotator.java b/predicate-search/src/main/java/com/yahoo/search/predicate/annotator/PredicateTreeAnnotator.java index 63f9abe3fa6..732148bdbd4 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/annotator/PredicateTreeAnnotator.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/annotator/PredicateTreeAnnotator.java @@ -24,6 +24,7 @@ import java.util.Map; /** * Performs the labelling of the predicate tree. The algorithm is based on the label algorithm described in * <a href="http://dl.acm.org/citation.cfm?id=1807171">Efficiently evaluating complex boolean expressions</a>. + * * @author bjorncs * @see <a href="http://dl.acm.org/citation.cfm?id=1807171">Efficiently evaluating complex boolean expressions</a> */ @@ -175,4 +176,5 @@ public class PredicateTreeAnnotator { this.subTreeSizes = subTreeSizes; } } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/benchmarks/ResultMetrics.java b/predicate-search/src/main/java/com/yahoo/search/predicate/benchmarks/ResultMetrics.java index 72c916d11fa..e76f9b8915c 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/benchmarks/ResultMetrics.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/benchmarks/ResultMetrics.java @@ -9,6 +9,7 @@ import java.util.Map; * @author bjorncs */ public class ResultMetrics { + private static final int MAX_LATENCY = 100; // ms private static final int RESOLUTION = 25; // sample points per ms private static final int SLOTS = MAX_LATENCY * RESOLUTION; diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/index/BoundsPostingList.java b/predicate-search/src/main/java/com/yahoo/search/predicate/index/BoundsPostingList.java index 65da0c8bd76..25d34f752b8 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/index/BoundsPostingList.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/index/BoundsPostingList.java @@ -5,7 +5,7 @@ package com.yahoo.search.predicate.index; * Wraps a posting stream of IntervalWithBounds objects (for collapsed * fixed tree leaf nodes) into a PostingList. * - * @author <a href="mailto:magnarn@yahoo-inc.com">Magnar Nedland</a> + * @author Magnar Nedland * @author bjorncs */ public class BoundsPostingList extends MultiIntervalPostingList { diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/index/CachedPostingListCounter.java b/predicate-search/src/main/java/com/yahoo/search/predicate/index/CachedPostingListCounter.java index 97292d1bc82..91599da5483 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/index/CachedPostingListCounter.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/index/CachedPostingListCounter.java @@ -17,6 +17,7 @@ import java.util.List; * @author bjorncs */ public class CachedPostingListCounter { + // Only use bit vector for counting if the documents covered is more than the threshold (relative to nDocuments) private static final double THRESHOLD_USE_BIT_VECTOR = 1; diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/index/Feature.java b/predicate-search/src/main/java/com/yahoo/search/predicate/index/Feature.java index c437112a802..6a9140585c5 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/index/Feature.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/index/Feature.java @@ -9,6 +9,7 @@ import com.yahoo.document.predicate.PredicateHash; * @author bjorncs */ public class Feature { + public static final String Z_STAR_COMPRESSED_ATTRIBUTE_NAME = "z-star-compressed"; public static final long Z_STAR_COMPRESSED_ATTRIBUTE_HASH = PredicateHash.hash64(Z_STAR_COMPRESSED_ATTRIBUTE_NAME); @@ -17,4 +18,5 @@ public class Feature { public static long createHash(String key, String value) { return PredicateHash.hash64(key + "=" + value); } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/index/Interval.java b/predicate-search/src/main/java/com/yahoo/search/predicate/index/Interval.java index 500e5207791..a742df139d6 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/index/Interval.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/index/Interval.java @@ -12,7 +12,7 @@ package com.yahoo.search.predicate.index; * ZStar1 intervals have end value in 16 MSB and begin in 16 LSB. * ZStar2 intervals have only an end value located at 16 LSB. * - * @author <a href="mailto:magnarn@yahoo-inc.com">Magnar Nedland</a> + * @author Magnar Nedland * @author bjorncs */ public class Interval { diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/index/IntervalPostingList.java b/predicate-search/src/main/java/com/yahoo/search/predicate/index/IntervalPostingList.java index 67156cc86c2..6d56bd2906b 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/index/IntervalPostingList.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/index/IntervalPostingList.java @@ -4,10 +4,12 @@ package com.yahoo.search.predicate.index; /** * Implementation of PostingList for regular features that store * their intervals and nothing else. - * @author <a href="mailto:magnarn@yahoo-inc.com">Magnar Nedland</a> + * + * @author Magnar Nedland * @author bjorncs */ public class IntervalPostingList extends MultiIntervalPostingList { + private final PredicateIntervalStore store; private int[] currentIntervals; private int currentIntervalIndex; @@ -39,4 +41,5 @@ public class IntervalPostingList extends MultiIntervalPostingList { public int getInterval() { return currentInterval; } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/index/IntervalWithBounds.java b/predicate-search/src/main/java/com/yahoo/search/predicate/index/IntervalWithBounds.java index b80f1880a08..ea4dd56e8d8 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/index/IntervalWithBounds.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/index/IntervalWithBounds.java @@ -6,7 +6,7 @@ import java.util.stream.Stream; /** * Represents a collapsed leaf node in the fixed tree range representation. * - * @author <a href="mailto:magnarn@yahoo-inc.com">Magnar Nedland</a> + * @author Magnar Nedland * @author bjorncs */ public class IntervalWithBounds { @@ -82,4 +82,5 @@ public class IntervalWithBounds { ", bounds=" + getBounds() + '}'; } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/index/MultiIntervalPostingList.java b/predicate-search/src/main/java/com/yahoo/search/predicate/index/MultiIntervalPostingList.java index e4191a2505a..917e4aeef06 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/index/MultiIntervalPostingList.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/index/MultiIntervalPostingList.java @@ -5,10 +5,12 @@ import com.yahoo.search.predicate.utils.PostingListSearch; /** * Shared implementation for posting lists that may have multiple intervals. - * @author <a href="mailto:magnarn@yahoo-inc.com">Magnar Nedland</a> + * + * @author Magnar Nedland * @author bjorncs */ public abstract class MultiIntervalPostingList implements PostingList { + private final int[] docIds; private final int[] dataRefs; private final long subquery; @@ -64,4 +66,5 @@ public abstract class MultiIntervalPostingList implements PostingList { public final long getSubquery() { return subquery; } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/index/Posting.java b/predicate-search/src/main/java/com/yahoo/search/predicate/index/Posting.java index 7bfac7b2a89..bc1ba0fc475 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/index/Posting.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/index/Posting.java @@ -4,7 +4,7 @@ package com.yahoo.search.predicate.index; /** * Represents an entry in a posting list, containing an integer id and integer data reference. * - * @author <a href="mailto:magnarn@yahoo-inc.com">Magnar Nedland</a> + * @author Magnar Nedland */ public class Posting implements Comparable<Posting> { @@ -47,4 +47,5 @@ public class Posting implements Comparable<Posting> { result = 31 * result + dataRef; return result; } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/index/PostingList.java b/predicate-search/src/main/java/com/yahoo/search/predicate/index/PostingList.java index 4274b7e6496..fd14d18ec31 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/index/PostingList.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/index/PostingList.java @@ -4,9 +4,10 @@ package com.yahoo.search.predicate.index; /** * Interface for posting lists to be used by the algorithm implemented in PredicateSearch. * - * @author <a href="mailto:magnarn@yahoo-inc.com">Magnar Nedland</a> + * @author Magnar Nedland */ public interface PostingList { + /** * Moves the posting list past the supplied document id. * @param docId Document id to move past. @@ -50,4 +51,5 @@ public interface PostingList { * @return The document ids */ int[] getDocIds(); + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/index/PredicateOptimizer.java b/predicate-search/src/main/java/com/yahoo/search/predicate/index/PredicateOptimizer.java index 682a78fc7de..f4441173b3e 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/index/PredicateOptimizer.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/index/PredicateOptimizer.java @@ -19,6 +19,7 @@ import com.yahoo.search.predicate.optimization.PredicateProcessor; * @author bjorncs */ public class PredicateOptimizer { + private final PredicateProcessor[] processors; private final PredicateOptions options; @@ -43,4 +44,5 @@ public class PredicateOptimizer { } return predicate; } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/index/PredicateRangeTermExpander.java b/predicate-search/src/main/java/com/yahoo/search/predicate/index/PredicateRangeTermExpander.java index 46a6b47a01e..198dfd46b74 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/index/PredicateRangeTermExpander.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/index/PredicateRangeTermExpander.java @@ -7,9 +7,10 @@ import com.yahoo.document.predicate.PredicateHash; * Expands range terms from a query to find the set of features they translate to. * * @author bjorncs - * @author <a href="mailto:magnarn@yahoo-inc.com">Magnar Nedland</a> + * @author Magnar Nedland */ public class PredicateRangeTermExpander { + private final int arity; private final int maxPositiveLevels; private final int maxNegativeLevels; @@ -113,4 +114,5 @@ public class PredicateRangeTermExpander { public interface EdgeHandler { void handleEdge(long featureHash, int value); } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/index/SimpleIndex.java b/predicate-search/src/main/java/com/yahoo/search/predicate/index/SimpleIndex.java index b3d2cb44bc9..64583273e77 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/index/SimpleIndex.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/index/SimpleIndex.java @@ -17,7 +17,8 @@ import java.util.Map; /** * An index mapping keys of type Long to lists of postings of generic data. - * @author <a href="mailto:magnarn@yahoo-inc.com">Magnar Nedland</a> + * + * @author Magnar Nedland * @author bjorncs */ public class SimpleIndex { @@ -30,8 +31,9 @@ public class SimpleIndex { /** * Retrieves a posting list for a given key - * @param key Key to lookup - * @return List of postings + * + * @param key the key to lookup + * @return list of postings */ public Entry getPostingList(long key) { return dictionary.get(key); diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/index/ZeroConstraintPostingList.java b/predicate-search/src/main/java/com/yahoo/search/predicate/index/ZeroConstraintPostingList.java index f4d5bc63afc..7f68897c558 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/index/ZeroConstraintPostingList.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/index/ZeroConstraintPostingList.java @@ -6,10 +6,12 @@ import com.yahoo.search.predicate.SubqueryBitmap; /** * Wraps an int stream of document ids into a PostingList. * All documents in the stream are considered matches. - * @author <a href="mailto:magnarn@yahoo-inc.com">Magnar Nedland</a> + * + * @author Magnar Nedland * @author bjorncs */ public class ZeroConstraintPostingList implements PostingList { + private final int[] docIds; private final int length; private int currentIndex; diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/index/ZstarCompressedPostingList.java b/predicate-search/src/main/java/com/yahoo/search/predicate/index/ZstarCompressedPostingList.java index 78d19c58378..487dc328b0f 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/index/ZstarCompressedPostingList.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/index/ZstarCompressedPostingList.java @@ -8,10 +8,12 @@ import com.yahoo.search.predicate.SubqueryBitmap; * The compression works by implying an interval of size 1 after each * stored interval, unless the next interval starts with 16 bits of 0, * in which case the current interval is extended to the next. - * @author <a href="mailto:magnarn@yahoo-inc.com">Magnar Nedland</a> + * + * @author Magnar Nedland * @author bjorncs */ public class ZstarCompressedPostingList extends MultiIntervalPostingList { + private final PredicateIntervalStore store; private int[] currentIntervals; private int currentIntervalIndex; @@ -63,4 +65,5 @@ public class ZstarCompressedPostingList extends MultiIntervalPostingList { public int getInterval() { return currentInterval; } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/ConjunctionHit.java b/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/ConjunctionHit.java index 1be0cd91c87..1706746af58 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/ConjunctionHit.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/ConjunctionHit.java @@ -9,6 +9,7 @@ import com.yahoo.search.predicate.SubqueryBitmap; * @author bjorncs */ public class ConjunctionHit implements Comparable<ConjunctionHit> { + public final long conjunctionId; public final long subqueryBitmap; @@ -49,4 +50,5 @@ public class ConjunctionHit implements Comparable<ConjunctionHit> { return "[" + conjunctionId + ",0x" + Long.toHexString(subqueryBitmap) + "]"; } } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/ConjunctionId.java b/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/ConjunctionId.java index bba5fcf352c..031e9087268 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/ConjunctionId.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/ConjunctionId.java @@ -25,4 +25,5 @@ public class ConjunctionId { public static int nextId(int c) { return (c | 1) + 1; } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/ConjunctionIdIterator.java b/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/ConjunctionIdIterator.java index 231aa67d791..8c7dd278f1d 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/ConjunctionIdIterator.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/ConjunctionIdIterator.java @@ -44,4 +44,5 @@ public class ConjunctionIdIterator { public int[] getConjunctionIds() { return conjunctionIds; } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/ConjunctionIndex.java b/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/ConjunctionIndex.java index d2709ba956f..5a100ea9cf5 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/ConjunctionIndex.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/ConjunctionIndex.java @@ -23,12 +23,14 @@ import java.util.Optional; /** * A searchable index of conjunctions (see {@link FeatureConjunction} / {@link IndexableFeatureConjunction}). - * Implements the algorithm described in the paper <a href="http://dl.acm.org/citation.cfm?id=1687633">Indexing Boolean Expressions</a>. + * Implements the algorithm described in the paper + * <a href="http://dl.acm.org/citation.cfm?id=1687633">Indexing Boolean Expressions</a>. * - * @author <a href="mailto:magnarn@yahoo-inc.com">Magnar Nedland</a> + * @author Magnar Nedland * @author bjorncs */ public class ConjunctionIndex { + // A map from K value to FeatureIndex private final IntObjectMap<FeatureIndex> kIndex; private final int[] zList; @@ -276,4 +278,5 @@ public class ConjunctionIndex { return idMapping[internalId >>> 1]; } } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/ConjunctionIndexBuilder.java b/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/ConjunctionIndexBuilder.java index e3b75d85743..a6a03177018 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/ConjunctionIndexBuilder.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/ConjunctionIndexBuilder.java @@ -22,6 +22,7 @@ import java.util.TreeSet; * @author bjorncs */ public class ConjunctionIndexBuilder { + // A map from K value to FeatureIndex private final HashMap<Integer, FeatureIndexBuilder> kIndexBuilder = new HashMap<>(); private final List<Integer> zListBuilder = new ArrayList<>(); diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/IndexableFeatureConjunction.java b/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/IndexableFeatureConjunction.java index 35709c1806e..5e423d36245 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/IndexableFeatureConjunction.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/index/conjunction/IndexableFeatureConjunction.java @@ -17,6 +17,7 @@ import java.util.Set; * @author bjorncs */ public class IndexableFeatureConjunction { + /** Conjunction id */ public final long id; /** K value - number of non-negated operands */ @@ -72,4 +73,5 @@ public class IndexableFeatureConjunction { public int hashCode() { return (int) (id ^ (id >>> 32)); } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/serialization/PredicateQuerySerializer.java b/predicate-search/src/main/java/com/yahoo/search/predicate/serialization/PredicateQuerySerializer.java index 871f5eb5a50..17af31b2640 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/serialization/PredicateQuerySerializer.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/serialization/PredicateQuerySerializer.java @@ -32,6 +32,7 @@ import static java.util.stream.Collectors.toList; * @author bjorncs */ public class PredicateQuerySerializer { + private final JsonFactory factory = new JsonFactory(); private final PredicateQueryParser parser = new PredicateQueryParser(); @@ -105,4 +106,5 @@ public class PredicateQuerySerializer { private static String toHexString(long subqueryBitMap) { return "0x" + Long.toHexString(subqueryBitMap); } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/serialization/SerializationHelper.java b/predicate-search/src/main/java/com/yahoo/search/predicate/serialization/SerializationHelper.java index cfca1ab81d9..ee1ba817dbc 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/serialization/SerializationHelper.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/serialization/SerializationHelper.java @@ -13,6 +13,7 @@ import java.io.IOException; * @author bjorncs */ public class SerializationHelper { + public static void writeIntArray(int[] array, DataOutputStream out) throws IOException { out.writeInt(array.length); for (int v : array) { @@ -76,4 +77,5 @@ public class SerializationHelper { } return array; } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/utils/PostingListSearch.java b/predicate-search/src/main/java/com/yahoo/search/predicate/utils/PostingListSearch.java index da42542f1f5..edb3ab41b23 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/utils/PostingListSearch.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/utils/PostingListSearch.java @@ -3,6 +3,7 @@ package com.yahoo.search.predicate.utils; /** * Algorithms for searching in the docId arrays in posting lists. + * * @author bjorncs */ public class PostingListSearch { @@ -86,4 +87,5 @@ public class PostingListSearch { } return low; } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/utils/PrimitiveArraySorter.java b/predicate-search/src/main/java/com/yahoo/search/predicate/utils/PrimitiveArraySorter.java index 90ffbb08a06..cb24d16fb44 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/utils/PrimitiveArraySorter.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/utils/PrimitiveArraySorter.java @@ -94,4 +94,5 @@ public class PrimitiveArraySorter { } } } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/utils/TargetingQueryFileConverter.java b/predicate-search/src/main/java/com/yahoo/search/predicate/utils/TargetingQueryFileConverter.java index 2c9a199f069..b7e94578f23 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/utils/TargetingQueryFileConverter.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/utils/TargetingQueryFileConverter.java @@ -286,4 +286,5 @@ public class TargetingQueryFileConverter { return asYqlString().compareTo(o.asYqlString()); } } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/utils/VespaFeedParser.java b/predicate-search/src/main/java/com/yahoo/search/predicate/utils/VespaFeedParser.java index 56839230d0a..27367e8aacc 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/utils/VespaFeedParser.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/utils/VespaFeedParser.java @@ -41,4 +41,5 @@ public class VespaFeedParser { private static String extractBooleanExpression(String line) { return line.substring(9, line.length() - 10); } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/utils/VespaFeedWriter.java b/predicate-search/src/main/java/com/yahoo/search/predicate/utils/VespaFeedWriter.java index 6682d858d32..a23339aa532 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/utils/VespaFeedWriter.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/utils/VespaFeedWriter.java @@ -9,9 +9,10 @@ import java.io.IOException; import java.io.Writer; /** - * @author <a href="mailto:magnarn@yahoo-inc.com">Magnar Nedland</a> + * @author Magnar Nedland */ public class VespaFeedWriter extends BufferedWriter { + private String namespace; private String documentType; @@ -40,4 +41,5 @@ public class VespaFeedWriter extends BufferedWriter { throw new RuntimeException(e); } } + } diff --git a/predicate-search/src/main/java/com/yahoo/search/predicate/utils/VespaQueryParser.java b/predicate-search/src/main/java/com/yahoo/search/predicate/utils/VespaQueryParser.java index a02068b1943..79024bff180 100644 --- a/predicate-search/src/main/java/com/yahoo/search/predicate/utils/VespaQueryParser.java +++ b/predicate-search/src/main/java/com/yahoo/search/predicate/utils/VespaQueryParser.java @@ -102,4 +102,5 @@ public class VespaQueryParser { return result; } } + } |