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`