Package org.apache.lucene.search

## Class Scorer

- java.lang.Object
- - org.apache.lucene.search.Scorable
  - - org.apache.lucene.search.Scorer

- Direct Known Subclasses:
    `ConstantScoreScorer`, `FilterScorer`, `IndriScorer`, `TermScorer`

      public abstract class Scorer
      extends Scorable

  Expert: Common scoring functionality for different types of queries.

  A `Scorer` exposes an `iterator()` over documents matching a query in increasing order of doc id.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.lucene.search.Scorable

      `Scorable.ChildScorable`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected Weight` | `weight` | the Scorer's parent Weight

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `Scorer​(Weight weight)` | Constructs a Scorer

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `advanceShallow​(int target)` | Advance to the block of documents that contains `target` in order to get scoring information about this block.
    `abstract float` | `getMaxScore​(int upTo)` | Return the maximum score that documents between the last `target` that this iterator was `shallow-advanced` to included and `upTo` included.
    `Weight` | `getWeight()` | returns parent Weight
    `abstract DocIdSetIterator` | `iterator()` | Return a `DocIdSetIterator` over matching documents.
    `TwoPhaseIterator` | `twoPhaseIterator()` | Optional method: Return a `TwoPhaseIterator` view of this `Scorer`.

    - ### Methods inherited from class org.apache.lucene.search.Scorable

      `docID, getChildren, score, setMinCompetitiveScore, smoothingScore`

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

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

- - ### Field Detail

    - #### weight

          protected final Weight weight

      the Scorer's parent Weight

  - ### Constructor Detail

    - #### Scorer

          protected Scorer​(Weight weight)

      Constructs a Scorer
      Parameters:
        `weight` - The scorers `Weight`.

  - ### Method Detail

    - #### getWeight

          public Weight getWeight()

      returns parent Weight
      WARNING: This API is experimental and might change in incompatible ways in the next release.

    - #### iterator

          public abstract DocIdSetIterator iterator()

      Return a `DocIdSetIterator` over matching documents.

      The returned iterator will either be positioned on `-1` if no documents have been scored yet, `DocIdSetIterator.NO_MORE_DOCS` if all documents have been scored already, or the last document id that has been scored otherwise.

      The returned iterator is a view: calling this method several times will return iterators that have the same state.

    - #### twoPhaseIterator

          public TwoPhaseIterator twoPhaseIterator()

      Optional method: Return a `TwoPhaseIterator` view of this `Scorer`. A return value of `null` indicates that two-phase iteration is not supported.

      Note that the returned `TwoPhaseIterator`'s `approximation` must advance synchronously with the `iterator()`: advancing the approximation must advance the iterator and vice-versa.

      Implementing this method is typically useful on `Scorer`s that have a high per-document overhead in order to confirm matches.

      The default implementation returns `null`.

    - #### advanceShallow

          public int advanceShallow​(int target)
                             throws IOException

      Advance to the block of documents that contains `target` in order to get scoring information about this block. This method is implicitly called by `DocIdSetIterator.advance(int)` and `DocIdSetIterator.nextDoc()` on the returned doc ID. Calling this method doesn't modify the current `DocIdSetIterator.docID()`. It returns a number that is greater than or equal to all documents contained in the current block, but less than any doc IDS of the next block. `target` must be >= `Scorable.docID()` as well as all targets that have been passed to `advanceShallow(int)` so far.
      Throws:
        `IOException`

    - #### getMaxScore

          public abstract float getMaxScore​(int upTo)
                                     throws IOException

      Return the maximum score that documents between the last `target` that this iterator was `shallow-advanced` to included and `upTo` included.
      Throws:
        `IOException`