Package org.apache.lucene.search

## Class ScoreCachingWrappingScorer

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

-     public final class ScoreCachingWrappingScorer
      extends Scorable

  A `Scorer` which wraps another scorer and caches the score of the current document. Successive calls to `score()` will return the same result and will not invoke the wrapped Scorer's score() method, unless the current document has changed.
  This class might be useful due to the changes done to the `Collector` interface, in which the score is not computed for a document by default, only if the collector requests it. Some collectors may need to use the score in several places, however all they have in hand is a `Scorer` object, and might end up computing the score of a document more than once.

- - ### Nested Class Summary

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

      `Scorable.ChildScorable`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `docID()` | Returns the doc ID that is currently being scored.
    `Collection<Scorable.ChildScorable>` | `getChildren()` | Returns child sub-scorers positioned on the current document
    `float` | `score()` | Returns the score of the current document matching the query.
    `void` | `setMinCompetitiveScore​(float minScore)` | Optional method: Tell the scorer that its iterator may safely ignore all documents whose score is less than the given `minScore`.
    `static Scorable` | `wrap​(Scorable scorer)` | Wraps the provided `Scorable` unless it's already an instance of `ScoreCachingWrappingScorer`, in which case it will just return the provided instance.

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

      `smoothingScore`

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

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

- - ### Method Detail

    - #### wrap

          public static Scorable wrap​(Scorable scorer)

      Wraps the provided `Scorable` unless it's already an instance of `ScoreCachingWrappingScorer`, in which case it will just return the provided instance.
      Parameters:
        `scorer` - Underlying `Scorable` to wrap
      Returns:
        Instance of `ScoreCachingWrappingScorer` wrapping the underlying `scorer`

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

    - #### setMinCompetitiveScore

          public void setMinCompetitiveScore​(float minScore)
                                      throws IOException

      Description copied from class: `Scorable`
      Optional method: Tell the scorer that its iterator may safely ignore all documents whose score is less than the given `minScore`. This is a no-op by default.

      This method may only be called from collectors that use `ScoreMode.TOP_SCORES`, and successive calls may only set increasing values of `minScore`.

      Overrides:
        `setMinCompetitiveScore` in class `Scorable`
      Throws:
        `IOException`

    - #### docID

          public int docID()

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

    - #### getChildren

          public Collection<Scorable.ChildScorable> getChildren()

      Description copied from class: `Scorable`
      Returns child sub-scorers positioned on the current document
      Overrides:
        `getChildren` in class `Scorable`