Class BM25Similarity.BM25Scorer

java.lang.Object
org.apache.lucene.search.similarities.Similarity.SimScorer
org.apache.lucene.search.similarities.BM25Similarity.BM25Scorer
Enclosing class:
BM25Similarity

private static class BM25Similarity.BM25Scorer extends Similarity.SimScorer
Collection statistics for the BM25 model.
  • Field Details

    • boost

      private final float boost
      query boost
    • k1

      private final float k1
      k1 value for scale factor
    • b

      private final float b
      b value for length normalization impact
    • idf

      private final Explanation idf
      BM25's idf
    • avgdl

      private final float avgdl
      The average document length.
    • cache

      private final float[] cache
      precomputed norm[256] with k1 * ((1 - b) + b * dl / avgdl)
    • weight

      private final float weight
      weight (idf * boost)
  • Constructor Details

    • BM25Scorer

      BM25Scorer(float boost, float k1, float b, Explanation idf, float avgdl, float[] cache)
  • Method Details

    • score

      public float score(float freq, long encodedNorm)
      Description copied from class: Similarity.SimScorer
      Score a single document. freq is the document-term sloppy frequency and must be finite and positive. norm is the encoded normalization factor as computed by Similarity.computeNorm(FieldInvertState) at index time, or 1 if norms are disabled. norm is never 0.

      Score must not decrease when freq increases, ie. if freq1 > freq2, then score(freq1, norm) >= score(freq2, norm) for any value of norm that may be produced by Similarity.computeNorm(FieldInvertState).

      Score must not increase when the unsigned norm increases, ie. if Long.compareUnsigned(norm1, norm2) > 0 then score(freq, norm1) <= score(freq, norm2) for any legal freq.

      As a consequence, the maximum score that this scorer can produce is bound by score(Float.MAX_VALUE, 1).

      Specified by:
      score in class Similarity.SimScorer
      Parameters:
      freq - sloppy term frequency, must be finite and positive
      encodedNorm - encoded normalization factor or 1 if norms are disabled
      Returns:
      document's score
    • explain

      public Explanation explain(Explanation freq, long encodedNorm)
      Description copied from class: Similarity.SimScorer
      Explain the score for a single document
      Overrides:
      explain in class Similarity.SimScorer
      Parameters:
      freq - Explanation of how the sloppy term frequency was computed
      encodedNorm - encoded normalization factor, as returned by Similarity.computeNorm(org.apache.lucene.index.FieldInvertState), or 1 if norms are disabled
      Returns:
      document's score
    • explainTF

      private Explanation explainTF(Explanation freq, long norm)
    • explainConstantFactors

      private List<Explanation> explainConstantFactors()