class ValueSource.ValueSourceComparator extends SimpleFieldComparator<java.lang.Double>
FieldComparator that works
off of the FunctionValues for a ValueSource
instead of the normal Lucene FieldComparator that works off of a FieldCache.FieldComparator.DocComparator, FieldComparator.DoubleComparator, FieldComparator.FloatComparator, FieldComparator.IntComparator, FieldComparator.LongComparator, FieldComparator.NumericComparator<T extends java.lang.Number>, FieldComparator.RelevanceComparator, FieldComparator.TermOrdValComparator, FieldComparator.TermValComparator| Modifier and Type | Field and Description |
|---|---|
private double |
bottom |
private FunctionValues |
docVals |
private java.util.Map |
fcontext |
private double |
topValue |
private double[] |
values |
| Constructor and Description |
|---|
ValueSourceComparator(java.util.Map fcontext,
int numHits) |
| 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.
|
void |
copy(int slot,
int doc)
This method is called when a new hit is competitive.
|
void |
doSetNextReader(LeafReaderContext context)
This method is called before collecting
context. |
void |
setBottom(int bottom)
Set the bottom slot, ie the "weakest" (sorted last)
entry in the queue.
|
void |
setTopValue(java.lang.Double value)
Record the top value, for future calls to
LeafFieldComparator.compareTop(int). |
java.lang.Double |
value(int slot)
Return the actual value in the slot.
|
getLeafComparator, setScorercompareValuesprivate final double[] values
private FunctionValues docVals
private double bottom
private final java.util.Map fcontext
private double topValue
public int compare(int slot1,
int slot2)
FieldComparatorcompare in class FieldComparator<java.lang.Double>slot1 - first slot to compareslot2 - second slot to compareN < 0 if slot2's value is sorted after
slot1, any N > 0 if the slot2's value is sorted before
slot1 and 0 if they are equalpublic int compareBottom(int doc)
throws java.io.IOException
LeafFieldComparatorFieldComparator.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).
doc - that was hitN < 0 if the doc's value is sorted after
the bottom entry (not competitive), any N > 0 if the
doc's value is sorted before the bottom entry and 0 if
they are equal.java.io.IOExceptionpublic void copy(int slot,
int doc)
throws java.io.IOException
LeafFieldComparatorslot - which slot to copy the hit todoc - docID relative to current readerjava.io.IOExceptionpublic void doSetNextReader(LeafReaderContext context) throws java.io.IOException
SimpleFieldComparatorcontext.doSetNextReader in class SimpleFieldComparator<java.lang.Double>java.io.IOExceptionpublic void setBottom(int bottom)
LeafFieldComparatorLeafFieldComparator.compareBottom(int) is
called, you should compare against this slot. This
will always be called before LeafFieldComparator.compareBottom(int).bottom - the currently weakest (sorted last) slot in the queuepublic void setTopValue(java.lang.Double value)
FieldComparatorLeafFieldComparator.compareTop(int). This is only called for searches that
use searchAfter (deep paging), and is called before any
calls to FieldComparator.getLeafComparator(LeafReaderContext).setTopValue in class FieldComparator<java.lang.Double>public java.lang.Double value(int slot)
FieldComparatorvalue in class FieldComparator<java.lang.Double>slot - the valuepublic int compareTop(int doc)
throws java.io.IOException
LeafFieldComparatorFieldComparator.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).doc - that was hitN < 0 if the doc's value is sorted after
the top entry (not competitive), any N > 0 if the
doc's value is sorted before the top entry and 0 if
they are equal.java.io.IOException