Package org.apache.lucene.search

## Class FilterScorer

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

- All Implemented Interfaces:
    `Unwrappable<Scorer>`

      public abstract class FilterScorer
      extends Scorer
      implements Unwrappable<Scorer>

  A `FilterScorer` contains another `Scorer`, which it uses as its basic source of data, possibly transforming the data along the way or providing additional functionality. The class `FilterScorer` itself simply implements all abstract methods of `Scorer` with versions that pass all requests to the contained scorer. Subclasses of `FilterScorer` may further override some of these methods and may also provide additional methods and fields.

- - ### 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 Scorer` | `in` |

    - ### Fields inherited from class org.apache.lucene.search.Scorer

      `weight`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `FilterScorer​(Scorer in)` | Create a new FilterScorer
    `FilterScorer​(Scorer in, Weight weight)` | Create a new FilterScorer with a specific weight

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `docID()` | Returns the doc ID that is currently being scored.
    `DocIdSetIterator` | `iterator()` | Return a `DocIdSetIterator` over matching documents.
    `float` | `score()` | Returns the score of the current document matching the query.
    `TwoPhaseIterator` | `twoPhaseIterator()` | Optional method: Return a `TwoPhaseIterator` view of this `Scorer`.
    `Scorer` | `unwrap()` | Unwraps this instance

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

      `advanceShallow, getMaxScore, getWeight`

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

      `getChildren, setMinCompetitiveScore, smoothingScore`

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

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

- - ### Field Detail

    - #### in

          protected final Scorer in

  - ### Constructor Detail

    - #### FilterScorer

          public FilterScorer​(Scorer in)

      Create a new FilterScorer
      Parameters:
        `in` - the `Scorer` to wrap

    - #### FilterScorer

          public FilterScorer​(Scorer in,
                              Weight weight)

      Create a new FilterScorer with a specific weight
      Parameters:
        `in` - the `Scorer` to wrap
        `weight` - a `Weight`

  - ### Method Detail

    - #### score

          public float score()
                      throws IOException

      Description copied from class: `Scorable`
      Returns the score of the current document matching the query.
      Specified by:
        `score` in class `Scorable`
      Throws:
        `IOException`

    - #### docID

          public final int docID()

      Description copied from class: `Scorable`
      Returns the doc ID that is currently being scored.
      Specified by:
        `docID` in class `Scorable`

    - #### iterator

          public final DocIdSetIterator iterator()

      Description copied from class: `Scorer`
      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.

      Specified by:
        `iterator` in class `Scorer`

    - #### twoPhaseIterator

          public final TwoPhaseIterator twoPhaseIterator()

      Description copied from class: `Scorer`
      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 `Scorer.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`.

      Overrides:
        `twoPhaseIterator` in class `Scorer`

    - #### unwrap

          public Scorer unwrap()

      Description copied from interface: `Unwrappable`
      Unwraps this instance
      Specified by:
        `unwrap` in interface `Unwrappable<Scorer>`