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

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