## 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
`static class` `FieldValueHitQueue.Entry` Extension of ScoreDoc to also store the `FieldComparator` slot.

Field Summary
`protected FieldComparator<?>[]` `comparators`
`protected SortField[]` `fields` Stores the sort criteria being used.
`protected FieldComparator<?>` `firstComparator`
`protected int[]` `reverseMul`

Method Summary

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