org.apache.lucene.util
Class ScorerDocQueue
public
class
ScorerDocQueue
extends Object
A ScorerDocQueue maintains a partial ordering of its Scorers such that the
least Scorer can always be found in constant time. Put()'s and pop()'s
require log(size) time. The ordering is by Scorer.doc().
Method Summary |
void | adjustTop() Should be called when the scorer at top changes doc() value.
|
void | clear() Removes all entries from the ScorerDocQueue. |
boolean | insert(Scorer scorer)
Adds a Scorer to the ScorerDocQueue in log(size) time if either
the ScorerDocQueue is not full, or not lessThan(scorer, top()). |
Scorer | pop() Removes and returns the least scorer of the ScorerDocQueue in log(size)
time.
|
void | put(Scorer scorer)
Adds a Scorer to a ScorerDocQueue in log(size) time.
|
int | size() Returns the number of scorers currently stored in the ScorerDocQueue. |
Scorer | top() Returns the least Scorer of the ScorerDocQueue in constant time.
|
int | topDoc() Returns document number of the least Scorer of the ScorerDocQueue
in constant time.
|
boolean | topNextAndAdjustElsePop() |
float | topScore() |
boolean | topSkipToAndAdjustElsePop(int target) |
public ScorerDocQueue(int maxSize)
Create a ScorerDocQueue with a maximum size.
public final void adjustTop()
Should be called when the scorer at top changes doc() value.
Still log(n) worst case, but it's at least twice as fast to
{ pq.top().change(); pq.adjustTop(); }
instead of
{ o = pq.pop(); o.change(); pq.push(o); }
public final void clear()
Removes all entries from the ScorerDocQueue.
public boolean insert(
Scorer scorer)
Adds a Scorer to the ScorerDocQueue in log(size) time if either
the ScorerDocQueue is not full, or not lessThan(scorer, top()).
Parameters: scorer
Returns: true if scorer is added, false otherwise.
Removes and returns the least scorer of the ScorerDocQueue in log(size)
time.
Should not be used when the queue is empty.
public final void put(
Scorer scorer)
Adds a Scorer to a ScorerDocQueue in log(size) time.
If one tries to add more Scorers than maxSize
a RuntimeException (ArrayIndexOutOfBound) is thrown.
public final int size()
Returns the number of scorers currently stored in the ScorerDocQueue.
Returns the least Scorer of the ScorerDocQueue in constant time.
Should not be used when the queue is empty.
public final int topDoc()
Returns document number of the least Scorer of the ScorerDocQueue
in constant time.
Should not be used when the queue is empty.
public final boolean topNextAndAdjustElsePop()
public final float topScore()
public final boolean topSkipToAndAdjustElsePop(int target)
Copyright © 2000-2007 Apache Software Foundation. All Rights Reserved.