Package org.apache.lucene.search.highlight

# Interface Scorer

All Known Implementing Classes:
  `QueryScorer`, `QueryTermScorer`

public interface Scorer
A Scorer is responsible for scoring a stream of tokens. These token scores can then be used to compute `TextFragment` scores.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `float`
  `getFragmentScore()`
  Called when the `Highlighter` has no more tokens for the current fragment - the Scorer returns the weighting it has derived for the most recent fragment, typically based on the results of `getTokenScore()`.
  `float`
  `getTokenScore()`
  Called for each token in the current fragment.
  `TokenStream`
  `init(TokenStream tokenStream)`
  Called to init the Scorer with a `TokenStream`.
  `void`
  `startFragment(TextFragment newFragment)`
  Called when a new fragment is started for consideration.

- ## Method Details

  - ### init

    TokenStream init(TokenStream tokenStream) throws IOException
    Called to init the Scorer with a `TokenStream`. You can grab references to the attributes you are interested in here and access them from `getTokenScore()`.
    Parameters:
      `tokenStream` - the `TokenStream` that will be scored.
    Returns:
      either a `TokenStream` that the Highlighter should continue using (eg if you read the tokenSream in this method) or null to continue using the same `TokenStream` that was passed in.
    Throws:
      `IOException` - If there is a low-level I/O error

  - ### startFragment

    void startFragment(TextFragment newFragment)
    Called when a new fragment is started for consideration.
    Parameters:
      `newFragment` - the fragment that will be scored next

  - ### getTokenScore

    float getTokenScore()
    Called for each token in the current fragment. The `Highlighter` will increment the `TokenStream` passed to init on every call.
    Returns:
      a score which is passed to the `Highlighter` class to influence the mark-up of the text (this return value is NOT used to score the fragment)

  - ### getFragmentScore

    float getFragmentScore()
    Called when the `Highlighter` has no more tokens for the current fragment - the Scorer returns the weighting it has derived for the most recent fragment, typically based on the results of `getTokenScore()`.