org.apache.lucene.search

## Class Scorer

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

- Direct Known Subclasses:
    ConstantScoreScorer, FilterScorer, SpanScorer

      public abstract class Scorer
      extends Object

  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.

  Document scores are computed using a given `Similarity` implementation.

  NOTE: The values Float.Nan, Float.NEGATIVE_INFINITY and Float.POSITIVE_INFINITY are not valid scores. Certain collectors (eg `TopScoreDocCollector`) will not properly collect hits with these scores.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `Scorer.ChildScorer` A child Scorer and its relationship to its parent.

  - ### Field Summary

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

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract int` | `docID()` Returns the doc ID that is currently being scored.
    `abstract int` | `freq()` Returns the freq of this Scorer on the current document
    `Collection<Scorer.ChildScorer>` | `getChildren()` Returns child sub-scorers positioned on the current document Note that this method should not be called on Scorers passed to `LeafCollector.setScorer(Scorer)`, as these may be synthetic Scorers produced by `BulkScorer` which will throw an Exception.
    `Weight` | `getWeight()` returns parent Weight
    `abstract DocIdSetIterator` | `iterator()` Return a `DocIdSetIterator` over matching documents.
    `abstract float` | `score()` Returns the score of the current document matching the query.
    `TwoPhaseIterator` | `twoPhaseIterator()` Optional method: Return a `TwoPhaseIterator` view of this `Scorer`.

    - ### 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. in some cases this may be null

  - ### Constructor Detail

    - #### Scorer

          protected Scorer(Weight weight)

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

  - ### Method Detail

    - #### docID

          public abstract int docID()

      Returns the doc ID that is currently being scored. This will return `-1` if the `iterator()` is not positioned or `DocIdSetIterator.NO_MORE_DOCS` if it has been entirely consumed.
      See Also:
        `DocIdSetIterator.docID()`

    - #### score

          public abstract float score()
                               throws IOException

      Returns the score of the current document matching the query. Initially invalid, until `DocIdSetIterator.nextDoc()` or `DocIdSetIterator.advance(int)` is called on the `iterator()` the first time, or when called from within `LeafCollector.collect(int)`.
      Throws:
        `IOException`

    - #### freq

          public abstract int freq()
                            throws IOException

      Returns the freq of this Scorer on the current document
      Throws:
        `IOException`

    - #### getWeight

          public Weight getWeight()

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

    - #### getChildren

          public Collection<Scorer.ChildScorer> getChildren()
                                                     throws IOException

      Returns child sub-scorers positioned on the current document Note that this method should not be called on Scorers passed to `LeafCollector.setScorer(Scorer)`, as these may be synthetic Scorers produced by `BulkScorer` which will throw an Exception.
      Throws:
        `IOException`
      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`.

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