Class ReciprocalSingleFunction
ReciprocalSingleFunction implements a reciprocal function f(x) = a/(mx+b)
, based on
the
When a and b are equal, and x>=0
, this function has a maximum value of 1 that drops as x increases.
Increasing the value of a and b together results in a movement of the entire function to a flatter part of the curve.
These properties make this an idea function for boosting more recent documents.
Example: recip(ms(NOW,mydatefield),3.16e-11,1,1)
A multiplier of 3.16e-11 changes the units from milliseconds to years (since there are about 3.16e10 milliseconds per year). Thus, a very recent date will yield a value close to 1/(0+1) or 1, a date a year in the past will get a multiplier of about 1/(1+1) or 1/2, and date two years old will yield 1/(2+1) or 1/3.
NOTE: This was ReciprocalFloatFunction in Lucene
Inherited Members
Assembly: DistributedLucene.Net.Queries.dll
Syntax
public class ReciprocalSingleFunction : ValueSource
Constructors
Name | Description |
---|---|
ReciprocalSingleFunction(ValueSource, Single, Single, Single) | f(source) = a/(m*float(source)+b) |
Fields
Name | Description |
---|---|
m_a | |
m_b | |
m_m | |
m_source |
Methods
Name | Description |
---|---|
CreateWeight(IDictionary, IndexSearcher) | |
Equals(Object) | |
GetDescription() | |
GetHashCode() | |
GetValues(IDictionary, AtomicReaderContext) |