org.apache.lucene.util

## Class ScorerDocQueue

- java.lang.Object
- - org.apache.lucene.util.ScorerDocQueue

-     public class ScorerDocQueue
      extends java.lang.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

    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
    --- | ---
    `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)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 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.

Copyright © 2000-2016 Apache Software Foundation. All Rights Reserved.