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().
Constructor Summary
ScorerDocQueue(int maxSize)
Create a ScorerDocQueue with a maximum size.
Method Summary
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

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); }
 

clear

public final void clear()
Removes all entries from the ScorerDocQueue.

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.

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.

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.

size

public final int size()
Returns the number of scorers currently stored in the ScorerDocQueue.

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.

topNextAndAdjustElsePop

public final boolean topNextAndAdjustElsePop()

topScore

public final float topScore()

topSkipToAndAdjustElsePop

public final boolean topSkipToAndAdjustElsePop(int target)
Copyright © 2000-2007 Apache Software Foundation. All Rights Reserved.