Class LongValuesSource

java.lang.Object
org.apache.lucene.search.LongValuesSource
All Implemented Interfaces:
SegmentCacheable
Direct Known Subclasses:
LongValuesSource.ConstantLongValuesSource

public abstract class LongValuesSource extends Object implements SegmentCacheable
Base class for producing LongValues

To obtain a LongValues object for a leaf reader, clients should call rewrite(IndexSearcher) against the top-level searcher, and then getValues(LeafReaderContext, DoubleValues).

LongValuesSource objects for long and int-valued NumericDocValues fields can be obtained by calling fromLongField(String) and fromIntField(String).

To obtain a LongValuesSource from a float or double-valued NumericDocValues field, use DoubleValuesSource.fromFloatField(String) or DoubleValuesSource.fromDoubleField(String) and then call DoubleValuesSource.toLongValuesSource().

  • Constructor Details

    • LongValuesSource

      public LongValuesSource()
  • Method Details

    • getValues

      public abstract LongValues getValues(LeafReaderContext ctx, DoubleValues scores) throws IOException
      Returns a LongValues instance for the passed-in LeafReaderContext and scores

      If scores are not needed to calculate the values (ie returns false, callers may safely pass null for the scores parameter.

      Throws:
      IOException
    • needsScores

      public abstract boolean needsScores()
      Return true if document scores are needed to calculate values
    • hashCode

      public abstract int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public abstract boolean equals(Object obj)
      Overrides:
      equals in class Object
    • toString

      public abstract String toString()
      Overrides:
      toString in class Object
    • rewrite

      public abstract LongValuesSource rewrite(IndexSearcher searcher) throws IOException
      Return a LongValuesSource specialised for the given IndexSearcher

      Implementations should assume that this will only be called once. IndexSearcher-independent implementations can just return this

      Throws:
      IOException
    • getSortField

      public SortField getSortField(boolean reverse)
      Create a sort field based on the value of this producer
      Parameters:
      reverse - true if the sort should be decreasing
    • toDoubleValuesSource

      public DoubleValuesSource toDoubleValuesSource()
      Convert to a DoubleValuesSource by casting long values to doubles
    • fromLongField

      public static LongValuesSource fromLongField(String field)
      Creates a LongValuesSource that wraps a long-valued field
    • fromIntField

      public static LongValuesSource fromIntField(String field)
      Creates a LongValuesSource that wraps an int-valued field
    • constant

      public static LongValuesSource constant(long value)
      Creates a LongValuesSource that always returns a constant value