public static final class FieldComparator.TermOrdValComparator extends FieldComparator<BytesRef>
FieldComparator.TermValComparator, but it first resolves the string
to their relative ordinal positions (using the index
returned by FieldCache.getTermsIndex(org.apache.lucene.index.AtomicReader, java.lang.String)), and
does most comparisons using the ordinals. For medium
to large results, this comparator will be much faster
than FieldComparator.TermValComparator. For very small
result sets it may be slower.FieldComparator.ByteComparator, FieldComparator.DocComparator, FieldComparator.DoubleComparator, FieldComparator.FloatComparator, FieldComparator.IntComparator, FieldComparator.LongComparator, FieldComparator.NumericComparator<T extends Number>, FieldComparator.RelevanceComparator, FieldComparator.ShortComparator, FieldComparator.TermOrdValComparator, FieldComparator.TermValComparator| Constructor and Description |
|---|
FieldComparator.TermOrdValComparator(int numHits,
String field)
Creates this, sorting missing values first.
|
FieldComparator.TermOrdValComparator(int numHits,
String field,
boolean sortMissingLast)
Creates this, with control over how missing values
are sorted.
|
| Modifier and Type | Method and Description |
|---|---|
int |
compare(int slot1,
int slot2)
Compare hit at slot1 with hit at slot2.
|
int |
compareBottom(int doc)
Compare the bottom of the queue with this doc.
|
int |
compareTop(int doc)
Compare the top value with this doc.
|
int |
compareValues(BytesRef val1,
BytesRef val2)
Returns -1 if first is less than second.
|
void |
copy(int slot,
int doc)
This method is called when a new hit is competitive.
|
void |
setBottom(int bottom)
Set the bottom slot, ie the "weakest" (sorted last)
entry in the queue.
|
FieldComparator<BytesRef> |
setNextReader(AtomicReaderContext context)
Set a new
AtomicReaderContext. |
void |
setTopValue(BytesRef value)
Record the top value, for future calls to
FieldComparator.compareTop(int). |
BytesRef |
value(int slot)
Return the actual value in the slot.
|
setScorerpublic FieldComparator.TermOrdValComparator(int numHits,
String field)
public FieldComparator.TermOrdValComparator(int numHits,
String field,
boolean sortMissingLast)
public int compare(int slot1,
int slot2)
FieldComparatorcompare in class FieldComparator<BytesRef>slot1 - first slot to compareslot2 - second slot to comparepublic int compareBottom(int doc)
FieldComparatorFieldComparator.compare(int,int)} as if bottom were slot1 and the new
document were slot 2.
For a search that hits many results, this method will be the hotspot (invoked by far the most frequently).
compareBottom in class FieldComparator<BytesRef>doc - that was hitpublic void copy(int slot,
int doc)
FieldComparatorcopy in class FieldComparator<BytesRef>slot - which slot to copy the hit todoc - docID relative to current readerpublic FieldComparator<BytesRef> setNextReader(AtomicReaderContext context) throws IOException
FieldComparatorAtomicReaderContext. All subsequent docIDs are relative to
the current reader (you must add docBase if you need to
map it to a top-level docID).setNextReader in class FieldComparator<BytesRef>context - current reader contextIOException - if there is a low-level IO errorpublic void setBottom(int bottom)
FieldComparatorFieldComparator.compareBottom(int) is
called, you should compare against this slot. This
will always be called before FieldComparator.compareBottom(int).setBottom in class FieldComparator<BytesRef>bottom - the currently weakest (sorted last) slot in the queuepublic void setTopValue(BytesRef value)
FieldComparatorFieldComparator.compareTop(int). This is only called for searches that
use searchAfter (deep paging), and is called before any
calls to FieldComparator.setNextReader(org.apache.lucene.index.AtomicReaderContext).setTopValue in class FieldComparator<BytesRef>public BytesRef value(int slot)
FieldComparatorvalue in class FieldComparator<BytesRef>slot - the valuepublic int compareTop(int doc)
FieldComparatorFieldComparator.compare(int,int)} as if topValue were slot1 and the new
document were slot 2. This is only called for searches that
use searchAfter (deep paging).compareTop in class FieldComparator<BytesRef>doc - that was hitpublic int compareValues(BytesRef val1, BytesRef val2)
FieldComparatorcompareValues in class FieldComparator<BytesRef>Copyright © 2000-2014 Apache Software Foundation. All Rights Reserved.