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

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
  `protected class`
  `NumericComparator.CompetitiveDISIBuilder`
  Constructs a competitive iterator which can be updated during collection
  `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.