public class ReciprocalFloatFunction extends ValueSource
ReciprocalFloatFunction implements a reciprocal function f(x) = a/(mx+b), based on
the float value of a field or function as exported by ValueSource.
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.
FunctionQuery,
Serialized Form| Modifier and Type | Field and Description |
|---|---|
protected float |
a |
protected float |
b |
protected float |
m |
protected ValueSource |
source |
| Constructor and Description |
|---|
ReciprocalFloatFunction(ValueSource source,
float m,
float a,
float b)
f(source) = a/(m*float(source)+b)
|
| Modifier and Type | Method and Description |
|---|---|
void |
createWeight(Map context,
Searcher searcher)
Implementations should propagate createWeight to sub-ValueSources which can optionally store
weight info in the context.
|
String |
description()
description of field, used in explain()
|
boolean |
equals(Object o) |
DocValues |
getValues(Map context,
IndexReader reader)
Gets the values for this reader and the context that was previously
passed to createWeight()
|
int |
hashCode() |
getSortField, getValues, newContext, toStringprotected final ValueSource source
protected final float m
protected final float a
protected final float b
public ReciprocalFloatFunction(ValueSource source, float m, float a, float b)
public DocValues getValues(Map context, IndexReader reader) throws IOException
ValueSourcegetValues in class ValueSourceIOExceptionpublic void createWeight(Map context, Searcher searcher) throws IOException
ValueSourcecreateWeight in class ValueSourceIOExceptionpublic String description()
ValueSourcedescription in class ValueSourcepublic int hashCode()
hashCode in class ValueSourcepublic boolean equals(Object o)
equals in class ValueSource