public class DefaultSimilarity extends Similarity
Modifier and Type | Field and Description |
---|---|
protected boolean |
discountOverlaps |
NO_DOC_ID_PROVIDED
Constructor and Description |
---|
DefaultSimilarity() |
Modifier and Type | Method and Description |
---|---|
float |
computeNorm(String field,
FieldInvertState state)
Implemented as
state.getBoost()*lengthNorm(numTerms) , where
numTerms is FieldInvertState.getLength() if setDiscountOverlaps(boolean) is false, else it's FieldInvertState.getLength() - FieldInvertState.getNumOverlap() . |
float |
coord(int overlap,
int maxOverlap)
Implemented as
overlap / maxOverlap . |
boolean |
getDiscountOverlaps() |
float |
idf(int docFreq,
int numDocs)
Implemented as
log(numDocs/(docFreq+1)) + 1 . |
float |
queryNorm(float sumOfSquaredWeights)
Implemented as
1/sqrt(sumOfSquaredWeights) . |
void |
setDiscountOverlaps(boolean v)
Determines whether overlap tokens (Tokens with
0 position increment) are ignored when computing
norm.
|
float |
sloppyFreq(int distance)
Implemented as
1 / (distance + 1) . |
float |
tf(float freq)
Implemented as
sqrt(freq) . |
decodeNorm, decodeNormValue, encodeNorm, encodeNormValue, getDefault, getNormDecoder, idfExplain, idfExplain, idfExplain, lengthNorm, scorePayload, setDefault, tf
public float computeNorm(String field, FieldInvertState state)
state.getBoost()*lengthNorm(numTerms)
, where
numTerms
is FieldInvertState.getLength()
if setDiscountOverlaps(boolean)
is false, else it's FieldInvertState.getLength()
- FieldInvertState.getNumOverlap()
.computeNorm
in class Similarity
field
- field namestate
- current processing state for this fieldpublic float queryNorm(float sumOfSquaredWeights)
1/sqrt(sumOfSquaredWeights)
.queryNorm
in class Similarity
sumOfSquaredWeights
- the sum of the squares of query term weightspublic float tf(float freq)
sqrt(freq)
.tf
in class Similarity
freq
- the frequency of a term within a documentpublic float sloppyFreq(int distance)
1 / (distance + 1)
.sloppyFreq
in class Similarity
distance
- the edit distance of this sloppy phrase matchPhraseQuery.setSlop(int)
public float idf(int docFreq, int numDocs)
log(numDocs/(docFreq+1)) + 1
.idf
in class Similarity
docFreq
- the number of documents which contain the termnumDocs
- the total number of documents in the collectionpublic float coord(int overlap, int maxOverlap)
overlap / maxOverlap
.coord
in class Similarity
overlap
- the number of query terms matched in the documentmaxOverlap
- the total number of terms in the querypublic void setDiscountOverlaps(boolean v)
computeNorm(java.lang.String, org.apache.lucene.index.FieldInvertState)
public boolean getDiscountOverlaps()
setDiscountOverlaps(boolean)