Package org.apache.lucene.facet

# Class MultiLongValuesSource

java.lang.Object
org.apache.lucene.facet.MultiLongValuesSource

All Implemented Interfaces:
  `SegmentCacheable`

public abstract class MultiLongValuesSource extends Object implements SegmentCacheable
Base class for producing `MultiLongValues`. See also `LongValuesSource` for a single-valued version.

MultiLongValuesSource objects for long and int-valued NumericDocValues/SortedNumericDocValues fields can be obtained by calling `fromLongField(String)` and `fromIntField(String)`. This is valid for both multi-valued and single-valued fields.

To obtain a MultiLongValuesSource from a float or double-valued NumericDocValues/SortedNumericDocValues field, use `MultiDoubleValuesSource.fromFloatField(String)` or `MultiDoubleValuesSource.fromDoubleField(String)` and then call `MultiDoubleValuesSource.toMultiLongValuesSource()`.

To obtain a MultiLongValuesSource from an existing `LongValuesSource`, see `fromSingleValued(LongValuesSource)`. Instances created in this way can be "unwrapped" using `unwrapSingleton(MultiLongValuesSource)` if necessary. Note that scores are never provided to the underlying `LongValuesSource`. `LongValuesSource.rewrite(IndexSearcher)` will also never be called. The user should be aware of this if using a `LongValuesSource` that relies on rewriting or scores. The faceting use-cases don't call rewrite or provide scores, which is why this simplification was made.

Currently meant only for use within the faceting module. Could be further generalized and made available for more use-cases outside faceting if there is a desire to do so.

WARNING: This API is experimental and might change in incompatible ways in the next release.

## Constructor Summary

Constructors
Constructor
Description
`MultiLongValuesSource()`
Instantiates a new MultiLongValuesSource

## Method Summary

Modifier and Type
Method
Description
`abstract boolean`
`equals(Object o)`
`static MultiLongValuesSource`
`fromIntField(String field)`
Creates a MultiLongValuesSource that wraps an int-valued field
`static MultiLongValuesSource`
`fromLongField(String field)`
Creates a MultiLongValuesSource that wraps a long-valued field
`static MultiLongValuesSource`
`fromSingleValued(LongValuesSource singleValued)`
Creates a MultiLongValuesSource that wraps a single-valued `LongValuesSource`
`abstract MultiLongValues`
`getValues(LeafReaderContext ctx)`
Returns a `MultiLongValues` instance for the passed-in LeafReaderContext
`abstract int`
`hashCode()`
`final MultiDoubleValuesSource`
`toMultiDoubleValuesSource()`
Convert to a MultiDoubleValuesSource by casting long values to doubles
`abstract String`
`toString()`
`static LongValuesSource`
`unwrapSingleton(MultiLongValuesSource in)`
Returns a single-valued view of the `MultiLongValuesSource` if it was previously wrapped with `fromSingleValued(LongValuesSource)`, or null.

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

### MultiLongValuesSource

public MultiLongValuesSource()
Instantiates a new MultiLongValuesSource

## Method Details

### getValues

public abstract MultiLongValues getValues(LeafReaderContext ctx) throws IOException
Returns a `MultiLongValues` instance for the passed-in LeafReaderContext

Throws:
  `IOException`

### hashCode

public abstract int hashCode()

Overrides:
  `hashCode` in class `Object`

### equals

public abstract boolean equals(Object o)

Overrides:
  `equals` in class `Object`

### toString

public abstract String toString()

Overrides:
  `toString` in class `Object`

### fromLongField

public static MultiLongValuesSource fromLongField(String field)
Creates a MultiLongValuesSource that wraps a long-valued field

### fromIntField

public static MultiLongValuesSource fromIntField(String field)
Creates a MultiLongValuesSource that wraps an int-valued field

### fromSingleValued

public static MultiLongValuesSource fromSingleValued(LongValuesSource singleValued)
Creates a MultiLongValuesSource that wraps a single-valued `LongValuesSource`

### unwrapSingleton

public static LongValuesSource unwrapSingleton(MultiLongValuesSource in)
Returns a single-valued view of the `MultiLongValuesSource` if it was previously wrapped with `fromSingleValued(LongValuesSource)`, or null.

### toMultiDoubleValuesSource

public final MultiDoubleValuesSource toMultiDoubleValuesSource()
Convert to a MultiDoubleValuesSource by casting long values to doubles