Package org.apache.lucene.search

## Class TermScorer

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

-     public final class TermScorer
      extends Scorer

  Expert: A `Scorer` for documents matching a `Term`.
  NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

- - ### Nested Class Summary

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

      `Scorable.ChildScorable`

  - ### Field Summary

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

      `weight`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `TermScorer​(Weight weight, ImpactsEnum impactsEnum, LeafSimScorer docScorer, boolean topLevelScoringClause)` | Construct a `TermScorer` that will use impacts to skip blocks of non-competitive documents.
    `TermScorer​(Weight weight, PostingsEnum postingsEnum, LeafSimScorer docScorer)` | Construct a `TermScorer` that will iterate all documents.

  - ### Method Summary

    All Methods Instance 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.
    `int` | `docID()` | Returns the doc ID that is currently being scored.
    `int` | `freq()` | Returns term frequency in the current document.
    `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.
    `DocIdSetIterator` | `iterator()` | Return a `DocIdSetIterator` over matching documents.
    `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`.
    `float` | `smoothingScore​(int docId)` | Returns the smoothing score of the current document matching the query.
    `String` | `toString()` | Returns a string representation of this `TermScorer`.

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

      `getWeight, twoPhaseIterator`

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

      `getChildren`

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

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

- - ### Constructor Detail

    - #### TermScorer

          public TermScorer​(Weight weight,
                            PostingsEnum postingsEnum,
                            LeafSimScorer docScorer)

      Construct a `TermScorer` that will iterate all documents.

    - #### TermScorer

          public TermScorer​(Weight weight,
                            ImpactsEnum impactsEnum,
                            LeafSimScorer docScorer,
                            boolean topLevelScoringClause)

      Construct a `TermScorer` that will use impacts to skip blocks of non-competitive documents.

  - ### Method Detail

    - #### docID

          public int docID()

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

    - #### freq

          public final int freq()
                         throws IOException

      Returns term frequency in the current document.
      Throws:
        `IOException`

    - #### iterator

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

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

    - #### smoothingScore

          public float smoothingScore​(int docId)
                               throws IOException

      Description copied from class: `Scorable`
      Returns the smoothing score of the current document matching the query. This score is used when the query/term does not appear in the document, and behaves like an idf. The smoothing score is particularly important when the Scorer returns a product of probabilities so that the document score does not go to zero when one probability is zero. This can return 0 or a smoothing score.

      Smoothing scores are described in many papers, including: Metzler, D. and Croft, W. B. , "Combining the Language Model and Inference Network Approaches to Retrieval," Information Processing and Management Special Issue on Bayesian Networks and Information Retrieval, 40(5), pp.735-750.

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

    - #### advanceShallow

          public int advanceShallow​(int target)
                             throws IOException

      Description copied from class: `Scorer`
      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 `Scorer.advanceShallow(int)` so far.
      Overrides:
        `advanceShallow` in class `Scorer`
      Throws:
        `IOException`

    - #### getMaxScore

          public float getMaxScore​(int upTo)
                            throws IOException

      Description copied from class: `Scorer`
      Return the maximum score that documents between the last `target` that this iterator was `shallow-advanced` to included and `upTo` included.
      Specified by:
        `getMaxScore` in class `Scorer`
      Throws:
        `IOException`

    - #### setMinCompetitiveScore

          public void setMinCompetitiveScore​(float minScore)

      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`

    - #### toString

          public String toString()

      Returns a string representation of this `TermScorer`.
      Overrides:
        `toString` in class `Object`