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 and Description
    `QueryRescorer(Query query)` Sole constructor, passing the 2nd pass query to assign scores to the 1st pass hits.

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and 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 Detail

    - #### QueryRescorer

          public QueryRescorer(Query query)

      Sole constructor, passing the 2nd pass query to assign scores to the 1st pass hits.

  - ### Method Detail

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

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.