org.apache.lucene.search
Class FieldValueHitQueue<T extends FieldValueHitQueue.Entry>

java.lang.Object
  extended by org.apache.lucene.util.PriorityQueue<T>
      extended by 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.