org.apache.lucene.search

## Class FieldValueHitQueue<T extends FieldValueHitQueue.Entry>

- java.lang.Object
- - org.apache.lucene.util.PriorityQueue<T>
  - - org.apache.lucene.search.FieldValueHitQueue<T>

-     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. Uses `FieldCache.DEFAULT` for maintaining internal term lookup tables.
  Since:
    2.9
  See Also:
    `IndexSearcher.search(Query,Filter,int,Sort)`, `FieldCache`
  WARNING: This API is experimental and might change in incompatible ways in the next release.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `FieldValueHitQueue.Entry` Extension of ScoreDoc to also store the `FieldComparator` slot.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected FieldComparator<?>[]` | `comparators`
    `protected SortField[]` | `fields` Stores the sort criteria being used.
    `protected FieldComparator<?>` | `firstComparator`
    `protected int[]` | `reverseMul`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static <T extends FieldValueHitQueue.Entry> FieldValueHitQueue<T>` | `create(SortField[] fields, int size)` Creates a hit queue sorted by the given list of fields.
    `FieldComparator<?>[]` | `getComparators()`
    `int[]` | `getReverseMul()`
    `protected abstract boolean` | `lessThan(FieldValueHitQueue.Entry a, FieldValueHitQueue.Entry b)` Determines the ordering of objects in this priority queue.
    `void` | `setComparator(int pos, FieldComparator<?> comparator)`

    - ### Methods inherited from class org.apache.lucene.util.PriorityQueue

      `add, clear, getHeapArray, getSentinelObject, insertWithOverflow, pop, size, top, updateTop`

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

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

- - ### Field Detail

    - #### fields

          protected final SortField[] fields

      Stores the sort criteria being used.

    - #### comparators

          protected final FieldComparator<?>[] comparators

    - #### firstComparator

          protected FieldComparator<?> firstComparator

    - #### reverseMul

          protected final int[] reverseMul

  - ### Method Detail

    - #### create

          public static <T extends FieldValueHitQueue.Entry> FieldValueHitQueue<T> create(SortField[] fields,
                                                                          int size)
                                                                               throws IOException

      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.
      Throws:
        `IOException` - if there is a low-level IO error

    - #### getComparators

          public FieldComparator<?>[] getComparators()

    - #### getReverseMul

          public int[] getReverseMul()

    - #### setComparator

          public void setComparator(int pos,
                           FieldComparator<?> comparator)

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

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.