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.
  • Field Details

    • missingValue

      protected final T extends Number missingValue
    • field

      protected final String field
    • reverse

      protected final boolean reverse
    • bytesCount

      private final int bytesCount
    • topValueSet

      protected boolean topValueSet
    • singleSort

      protected boolean singleSort
    • hitsThresholdReached

      protected boolean hitsThresholdReached
    • queueFull

      protected boolean queueFull
    • canSkipDocuments

      private boolean canSkipDocuments
  • Constructor Details

    • NumericComparator

      protected NumericComparator(String field, T missingValue, boolean reverse, int sortPos, int bytesCount)
  • Method Details

    • disableSkipping

      public void disableSkipping()
      Description copied from class: FieldComparator
      Informs the comparator that the skipping of documents should be disabled. This function is called in cases when the skipping functionality should not be applied or not necessary. One example for numeric comparators is when we don't know if the same numeric data has been indexed with docValues and points if these two fields have the same name. As the skipping functionality relies on these fields to have the same data and as we don't know if it is true, we have to disable it. Another 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>
    • 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>