org.apache.lucene.util
Class ScorerDocQueue
- java.lang.Object
-
- org.apache.lucene.util.ScorerDocQueue
-
public class ScorerDocQueue extends java.lang.ObjectA 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().
-
-
Constructor Summary
Constructors Constructor and Description ScorerDocQueue(int maxSize)Create a ScorerDocQueue with a maximum size.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description voidadjustTop()Should be called when the scorer at top changes doc() value.voidclear()Removes all entries from the ScorerDocQueue.booleaninsert(Scorer scorer)Adds a Scorer to the ScorerDocQueue in log(size) time if either the ScorerDocQueue is not full, or not lessThan(scorer, top()).Scorerpop()Removes and returns the least scorer of the ScorerDocQueue in log(size) time.voidput(Scorer scorer)Adds a Scorer to a ScorerDocQueue in log(size) time.intsize()Returns the number of scorers currently stored in the ScorerDocQueue.Scorertop()Returns the least Scorer of the ScorerDocQueue in constant time.inttopDoc()Returns document number of the least Scorer of the ScorerDocQueue in constant time.booleantopNextAndAdjustElsePop()floattopScore()booleantopSkipToAndAdjustElsePop(int target)
-
-
-
Constructor Detail
-
ScorerDocQueue
public ScorerDocQueue(int maxSize)
Create a ScorerDocQueue with a maximum size.
-
-
Method Detail
-
put
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.
-
insert
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.
-
top
public final Scorer top()
Returns the least Scorer of the ScorerDocQueue in constant time. Should not be used when the queue is empty.
-
topDoc
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.
-
topScore
public final float topScore() throws java.io.IOException- Throws:
java.io.IOException
-
topNextAndAdjustElsePop
public final boolean topNextAndAdjustElsePop() throws java.io.IOException- Throws:
java.io.IOException
-
topSkipToAndAdjustElsePop
public final boolean topSkipToAndAdjustElsePop(int target) throws java.io.IOException- Throws:
java.io.IOException
-
pop
public final Scorer pop()
Removes and returns the least scorer of the ScorerDocQueue in log(size) time. Should not be used when the queue is empty.
-
adjustTop
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); }
-
size
public final int size()
Returns the number of scorers currently stored in the ScorerDocQueue.
-
clear
public final void clear()
Removes all entries from the ScorerDocQueue.
-
-
DataMelt 3.0 © DataMelt by jWork.ORG