Package org.apache.lucene.search.highlight

# Class QueryTermScorer

java.lang.Object
org.apache.lucene.search.highlight.QueryTermScorer

All Implemented Interfaces:
  `Scorer`

public class QueryTermScorer extends Object implements Scorer
`Scorer` implementation which scores text fragments by the number of unique query terms found. This class uses the `QueryTermExtractor` class to process determine the query terms and their boosts to be used.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `QueryTermScorer(WeightedTerm[] weightedTerms)`
  `QueryTermScorer(Query query)`
  `QueryTermScorer(Query query, String fieldName)`
  `QueryTermScorer(Query query, IndexReader reader, String fieldName)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `allFragmentsProcessed()`
  `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 `Scorer.getTokenScore()`.
  `float`
  `getMaxTermWeight()`
  `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.

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

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

- ## Constructor Details

  - ### QueryTermScorer

    public QueryTermScorer(Query query)
    Parameters:
      `query` - a Lucene query (ideally rewritten using query.rewrite before being passed to this class and the searcher)

  - ### QueryTermScorer

    public QueryTermScorer(Query query, String fieldName)
    Parameters:
      `query` - a Lucene query (ideally rewritten using query.rewrite before being passed to this class and the searcher)
      `fieldName` - the Field name which is used to match Query terms

  - ### QueryTermScorer

    public QueryTermScorer(Query query, IndexReader reader, String fieldName)
    Parameters:
      `query` - a Lucene query (ideally rewritten using query.rewrite before being passed to this class and the searcher)
      `reader` - used to compute IDF which can be used to a) score selected fragments better b) use graded highlights eg set font color intensity
      `fieldName` - the field on which Inverse Document Frequency (IDF) calculations are based

  - ### QueryTermScorer

    public QueryTermScorer(WeightedTerm[] weightedTerms)

- ## Method Details

  - ### init

    public TokenStream init(TokenStream tokenStream)
    Description copied from interface: `Scorer`
    Called to init the Scorer with a `TokenStream`. You can grab references to the attributes you are interested in here and access them from `Scorer.getTokenScore()`.
    Specified by:
      `init` in interface `Scorer`
    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.

  - ### startFragment

    public void startFragment(TextFragment newFragment)
    Description copied from interface: `Scorer`
    Called when a new fragment is started for consideration.
    Specified by:
      `startFragment` in interface `Scorer`
    Parameters:
      `newFragment` - the fragment that will be scored next

  - ### getTokenScore

    public float getTokenScore()
    Description copied from interface: `Scorer`
    Called for each token in the current fragment. The `Highlighter` will increment the `TokenStream` passed to init on every call.
    Specified by:
      `getTokenScore` in interface `Scorer`
    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

    public float getFragmentScore()
    Description copied from interface: `Scorer`
    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 `Scorer.getTokenScore()`.
    Specified by:
      `getFragmentScore` in interface `Scorer`

  - ### allFragmentsProcessed

    public void allFragmentsProcessed()

  - ### getMaxTermWeight

    public float getMaxTermWeight()
    Returns:
      The highest weighted term (useful for passing to GradientFormatter to set top end of coloring scale.