Class FieldValueHitQueue<T extends FieldValueHitQueue.Entry>

java.lang.Object
org.apache.lucene.util.PriorityQueue<T>
org.apache.lucene.search.FieldValueHitQueue<T>
All Implemented Interfaces:
Iterable<T>
Direct Known Subclasses:
FieldValueHitQueue.MultiComparatorsFieldValueHitQueue, FieldValueHitQueue.OneComparatorFieldValueHitQueue

public abstract class FieldValueHitQueue<T extends FieldValueHitQueue.Entry> extends PriorityQueue<T>
Expert: A hit queue for sorting by hits by terms in more than one field.
Since:
2.9
See Also:
  • Field Details

    • fields

      protected final SortField[] fields
      Stores the sort criteria being used.
    • comparators

      protected final FieldComparator<?>[] comparators
    • reverseMul

      protected final int[] reverseMul
  • Constructor Details

    • FieldValueHitQueue

      private FieldValueHitQueue(SortField[] fields, int size)
  • Method Details

    • create

      public static <T extends FieldValueHitQueue.Entry> FieldValueHitQueue<T> create(SortField[] fields, int size)
      Creates a hit queue sorted by the given list of fields.

      NOTE: The instances returned by this method pre-allocate a full array of length numHits.

      Parameters:
      fields - SortField array we are sorting by in priority order (highest priority first); cannot be null or empty
      size - The number of hits to retain. Must be greater than zero.
    • getComparators

      public FieldComparator<?>[] getComparators()
    • getReverseMul

      public int[] getReverseMul()
    • getComparators

      public LeafFieldComparator[] getComparators(LeafReaderContext context) throws IOException
      Throws:
      IOException
    • lessThan

      protected abstract boolean lessThan(FieldValueHitQueue.Entry a, FieldValueHitQueue.Entry b)
      Description copied from class: PriorityQueue
      Determines the ordering of objects in this priority queue. Subclasses must define this one method.
      Specified by:
      lessThan in class PriorityQueue<T extends FieldValueHitQueue.Entry>
      Returns:
      true iff parameter a is less than parameter b.
    • fillFields

      Given a queue Entry, creates a corresponding FieldDoc that contains the values used to sort the given document. These values are not the raw values out of the index, but the internal representation of them. This is so the given search hit can be collated by a MultiSearcher with other search hits.
      Parameters:
      entry - The Entry used to create a FieldDoc
      Returns:
      The newly created FieldDoc
      See Also:
    • getFields

      SortField[] getFields()
      Returns the SortFields being used by this hit queue.