QueryRescorer (Lucene 10.5.0 core API)
Description: declaration: package: org.apache.lucene.search, class: QueryRescorer

Package org.apache.lucene.search

# Class QueryRescorer

java.lang.Object
org.apache.lucene.search.Rescorer
org.apache.lucene.search.QueryRescorer

public abstract class QueryRescorer extends Rescorer
A `Rescorer` that uses a provided Query to assign scores to the first-pass hits.

WARNING: This API is experimental and might change in incompatible ways in the next release.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `QueryRescorer(Query query)`
  Sole constructor, passing the 2nd pass query to assign scores to the 1st pass hits.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected abstract float`
  `combine(float firstPassScore, boolean secondPassMatches, float secondPassScore)`
  Implement this in a subclass to combine the first pass and second pass scores.
  `Explanation`
  `explain(IndexSearcher searcher, Explanation firstPassExplanation, int docID)`
  Explains how the score for the specified document was computed.
  `TopDocs`
  `rescore(IndexSearcher searcher, TopDocs firstPassTopDocs, int topN)`
  Rescore an initial first-pass `TopDocs`.
  `static TopDocs`
  `rescore(IndexSearcher searcher, TopDocs topDocs, Query query, double weight, int topN)`
  Sugar API, calling {#rescore} using a simple linear combination of firstPassScore + weight * secondPassScore

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

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

- ## Constructor Details

  - ### QueryRescorer

    public QueryRescorer(Query query)
    Sole constructor, passing the 2nd pass query to assign scores to the 1st pass hits.

- ## Method Details

  - ### combine

    protected abstract float combine(float firstPassScore, boolean secondPassMatches, float secondPassScore)
    Implement this in a subclass to combine the first pass and second pass scores. If secondPassMatches is false then the second pass query failed to match a hit from the first pass query, and you should ignore the secondPassScore.

  - ### rescore

    public TopDocs rescore(IndexSearcher searcher, TopDocs firstPassTopDocs, int topN) throws IOException
    Description copied from class: `Rescorer`
    Rescore an initial first-pass `TopDocs`.
    Specified by:
      `rescore` in class `Rescorer`
    Parameters:
      `searcher` - `IndexSearcher` used to produce the first pass topDocs
      `firstPassTopDocs` - Hits from the first pass search. It's very important that these hits were produced by the provided searcher; otherwise the doc IDs will not match!
      `topN` - How many re-scored hits to return
    Throws:
      `IOException`

  - ### explain

    public Explanation explain(IndexSearcher searcher, Explanation firstPassExplanation, int docID) throws IOException
    Description copied from class: `Rescorer`
    Explains how the score for the specified document was computed.
    Specified by:
      `explain` in class `Rescorer`
    Throws:
      `IOException`

  - ### rescore

    public static TopDocs rescore(IndexSearcher searcher, TopDocs topDocs, Query query, double weight, int topN) throws IOException
    Sugar API, calling {#rescore} using a simple linear combination of firstPassScore + weight * secondPassScore
    Throws:
      `IOException`