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