BM25Similarity
should be used instead@Deprecated public final class LegacyBM25Similarity extends Similarity
BM25Similarity
while also applying
the k1+1 factor to the numerator of the scoring formulaBM25Similarity
Similarity.SimScorer
Modifier and Type | Field and Description |
---|---|
private BM25Similarity |
bm25Similarity
Deprecated.
|
Constructor and Description |
---|
LegacyBM25Similarity()
Deprecated.
BM25 with these default values:
k1 = 1.2
b = 0.75
|
LegacyBM25Similarity(float k1,
float b)
Deprecated.
BM25 with the supplied parameter values.
|
Modifier and Type | Method and Description |
---|---|
long |
computeNorm(FieldInvertState state)
Deprecated.
Computes the normalization value for a field, given the accumulated
state of term processing for this field (see
FieldInvertState ). |
float |
getB()
Deprecated.
Returns the
b parameter |
boolean |
getDiscountOverlaps()
Deprecated.
Returns true if overlap tokens are discounted from the document's length.
|
float |
getK1()
Deprecated.
Returns the
k1 parameter |
Similarity.SimScorer |
scorer(float boost,
CollectionStatistics collectionStats,
TermStatistics... termStats)
Deprecated.
Compute any collection-level weight (e.g.
|
void |
setDiscountOverlaps(boolean v)
Deprecated.
Sets whether overlap tokens (Tokens with 0 position increment) are
ignored when computing norm.
|
java.lang.String |
toString()
Deprecated.
|
private final BM25Similarity bm25Similarity
public LegacyBM25Similarity()
k1 = 1.2
b = 0.75
public LegacyBM25Similarity(float k1, float b)
k1
- Controls non-linear term frequency normalization (saturation).b
- Controls to what degree document length normalizes tf values.java.lang.IllegalArgumentException
- if k1
is infinite or negative, or if b
is
not within the range [0..1]
public long computeNorm(FieldInvertState state)
Similarity
FieldInvertState
).
Matches in longer fields are less precise, so implementations of this
method usually set smaller values when state.getLength()
is large,
and larger values when state.getLength()
is small.
Note that for a given term-document frequency, greater unsigned norms
must produce scores that are lower or equal, ie. for two encoded norms
n1
and n2
so that
Long.compareUnsigned(n1, n2) > 0
then
SimScorer.score(freq, n1) <= SimScorer.score(freq, n2)
for any legal freq
.
0
is not a legal norm, so 1
is the norm that produces
the highest scores.
computeNorm
in class Similarity
state
- current processing state for this fieldpublic Similarity.SimScorer scorer(float boost, CollectionStatistics collectionStats, TermStatistics... termStats)
Similarity
scorer
in class Similarity
boost
- a multiplicative factor to apply to the produces scorescollectionStats
- collection-level statistics, such as the number of tokens in the collection.termStats
- term-level statistics, such as the document frequency of a term across the collection.public final float getK1()
k1
parameterLegacyBM25Similarity(float, float)
public final float getB()
b
parameterLegacyBM25Similarity(float, float)
public void setDiscountOverlaps(boolean v)
public boolean getDiscountOverlaps()
setDiscountOverlaps(boolean)
public java.lang.String toString()
toString
in class java.lang.Object