Package org.apache.lucene.search.comparators

# Class NumericComparator<T extends Number>

java.lang.Object
org.apache.lucene.search.FieldComparator<T>
org.apache.lucene.search.comparators.NumericComparator<T>

Direct Known Subclasses:
  `DoubleComparator`, `FloatComparator`, `IntComparator`, `LongComparator`

public abstract class NumericComparator<T extends Number> extends FieldComparator<T>
Abstract numeric comparator for comparing numeric values. This comparator provides a skipping functionality – an iterator that can skip over non-competitive documents.

Parameter `field` provided in the constructor is used as a field name in the default implementations of the methods `getNumericDocValues` and `getPointValues` to retrieve doc values and points. You can pass a dummy value for a field name (e.g. when sorting by script), but in this case you must override both of these methods.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`class`
`NumericComparator.NumericLeafComparator`
Leaf comparator for `NumericComparator` that provides skipping functionality

## Nested classes/interfaces inherited from class org.apache.lucene.search.FieldComparator

`FieldComparator.RelevanceComparator, FieldComparator.TermValComparator`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final String`
`field`
`protected boolean`
`hitsThresholdReached`
`protected final T`
`missingValue`
`protected Pruning`
`pruning`
`protected boolean`
`queueFull`
`protected final boolean`
`reverse`
`protected boolean`
`singleSort`
`protected boolean`
`topValueSet`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`NumericComparator(String field, T missingValue, boolean reverse, Pruning pruning, int bytesCount)`

## Method Summary

Modifier and Type
Method
Description
`void`
`disableSkipping()`
Informs the comparator that the skipping of documents should be disabled.
`protected abstract long`
`missingValueAsComparableLong()`
`void`
`setSingleSort()`
Informs the comparator that sort is done on this single field.
`void`
`setTopValue(T value)`
Record the top value, for future calls to `LeafFieldComparator.compareTop(int)`.
`protected abstract long`
`sortableBytesToLong(byte[] bytes)`
Decode sortable bytes to long.

### Methods inherited from class org.apache.lucene.search.FieldComparator

`compare, compareValues, getLeafComparator, value`

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

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### missingValue

protected final T extends Number missingValue

### field

protected final String field

### reverse

protected final boolean reverse

### topValueSet

protected boolean topValueSet

### singleSort

protected boolean singleSort

### hitsThresholdReached

protected boolean hitsThresholdReached

### queueFull

protected boolean queueFull

### pruning

protected Pruning pruning

## Constructor Details

### NumericComparator

protected NumericComparator(String field, T missingValue, boolean reverse, Pruning pruning, int bytesCount)

## Method Details

### setTopValue

public void setTopValue(T value)
Description copied from class: `FieldComparator`
Record the top value, for future calls to `LeafFieldComparator.compareTop(int)`. This is only called for searches that use searchAfter (deep paging), and is called before any calls to `FieldComparator.getLeafComparator(LeafReaderContext)`.

Specified by:
  `setTopValue` in class `FieldComparator<T extends Number>`

### setSingleSort

public void setSingleSort()
Description copied from class: `FieldComparator`
Informs the comparator that sort is done on this single field. This is useful to enable some optimizations for skipping non-competitive documents.

Overrides:
  `setSingleSort` in class `FieldComparator<T extends Number>`

### disableSkipping

public void disableSkipping()
Description copied from class: `FieldComparator`
Informs the comparator that the skipping of documents should be disabled. This function is called by TopFieldCollector in cases when the skipping functionality should not be applied or not necessary. An example could be when search sort is a part of the index sort, and can be already efficiently handled by TopFieldCollector, and doing extra work for skipping in the comparator is redundant.

Overrides:
  `disableSkipping` in class `FieldComparator<T extends Number>`

### missingValueAsComparableLong

protected abstract long missingValueAsComparableLong()

### sortableBytesToLong

protected abstract long sortableBytesToLong(byte[] bytes)
Decode sortable bytes to long. It should be consistent with the codec that `PointValues` of this field is using.