Module org.apache.lucene.core
Class BM25Similarity.BM25Scorer
java.lang.Object
org.apache.lucene.search.similarities.Similarity.SimScorer
org.apache.lucene.search.similarities.BM25Similarity.BM25Scorer
- Enclosing class:
BM25Similarity
Collection statistics for the BM25 model.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final floatThe average document length.private final floatb value for length normalization impactprivate final floatquery boostprivate final float[]precomputed norm[256] with k1 * ((1 - b) + b * dl / avgdl)private final ExplanationBM25's idfprivate final floatk1 value for scale factorprivate final floatweight (idf * boost) -
Constructor Summary
ConstructorsConstructorDescriptionBM25Scorer(float boost, float k1, float b, Explanation idf, float avgdl, float[] cache) -
Method Summary
Modifier and TypeMethodDescriptionexplain(Explanation freq, long encodedNorm) Explain the score for a single documentprivate List<Explanation> private ExplanationexplainTF(Explanation freq, long norm) floatscore(float freq, long encodedNorm) Score a single document.
-
Field Details
-
boost
private final float boostquery boost -
k1
private final float k1k1 value for scale factor -
b
private final float bb value for length normalization impact -
idf
BM25's idf -
avgdl
private final float avgdlThe average document length. -
cache
private final float[] cacheprecomputed norm[256] with k1 * ((1 - b) + b * dl / avgdl) -
weight
private final float weightweight (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.SimScorerScore a single document.freqis the document-term sloppy frequency and must be finite and positive.normis the encoded normalization factor as computed bySimilarity.computeNorm(FieldInvertState)at index time, or1if norms are disabled.normis never0.Score must not decrease when
freqincreases, ie. iffreq1 > freq2, thenscore(freq1, norm) >= score(freq2, norm)for any value ofnormthat may be produced bySimilarity.computeNorm(FieldInvertState).Score must not increase when the unsigned
normincreases, ie. ifLong.compareUnsigned(norm1, norm2) > 0thenscore(freq, norm1) <= score(freq, norm2)for any legalfreq.As a consequence, the maximum score that this scorer can produce is bound by
score(Float.MAX_VALUE, 1).- Specified by:
scorein classSimilarity.SimScorer- Parameters:
freq- sloppy term frequency, must be finite and positiveencodedNorm- encoded normalization factor or1if norms are disabled- Returns:
- document's score
-
explain
Description copied from class:Similarity.SimScorerExplain the score for a single document- Overrides:
explainin classSimilarity.SimScorer- Parameters:
freq- Explanation of how the sloppy term frequency was computedencodedNorm- encoded normalization factor, as returned bySimilarity.computeNorm(org.apache.lucene.index.FieldInvertState), or1if norms are disabled- Returns:
- document's score
-
explainTF
-
explainConstantFactors
-