LongValuesSource (Lucene 10.5.0 core API)
Description: declaration: package: org.apache.lucene.search, class: LongValuesSource

Package org.apache.lucene.search

# 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()`.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `LongValuesSource.ConstantLongValuesSource`
  A ConstantLongValuesSource that always returns a constant value

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `LongValuesSource()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static LongValuesSource`
  `constant(long value)`
  Creates a LongValuesSource that always returns a constant value
  `abstract boolean`
  `equals(Object obj)`
  `static LongValuesSource`
  `fromIntField(String field)`
  Creates a LongValuesSource that wraps an int-valued field
  `static LongValuesSource`
  `fromLongField(String field)`
  Creates a LongValuesSource that wraps a long-valued field
  `SortField`
  `getSortField(boolean reverse)`
  Create a sort field based on the value of this producer
  `SortField`
  `getSortField(boolean reverse, long missingValue)`
  Create a sort field based on the value of this producer
  `abstract LongValues`
  `getValues(LeafReaderContext ctx, DoubleValues scores)`
  Returns a `LongValues` instance for the passed-in LeafReaderContext and scores
  `abstract int`
  `hashCode()`
  `abstract boolean`
  `needsScores()`
  Return true if document scores are needed to calculate values
  `abstract LongValuesSource`
  `rewrite(IndexSearcher searcher)`
  Return a LongValuesSource specialised for the given IndexSearcher
  `DoubleValuesSource`
  `toDoubleValuesSource()`
  Convert to a DoubleValuesSource by casting long values to doubles
  `abstract String`
  `toString()`

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface org.apache.lucene.search.SegmentCacheable

  `isCacheable`

- ## 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

  - ### getSortField

    public SortField getSortField(boolean reverse, long missingValue)
    Create a sort field based on the value of this producer
    Parameters:
      `reverse` - true if the sort should be decreasing
      `missingValue` - a placeholder to use for documents with no value

  - ### 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