# Package org.apache.lucene.queries.function.valuesource

A variety of functions to use with FunctionQuery.

See: Description

Class Summary
BoolFunction: Abstract parent class for those `ValueSource` implementations which apply boolean logic to their values
BytesRefFieldSource: An implementation for retrieving `FunctionValues` instances for string based fields.
ComparisonBoolFunction: Base class for comparison operators useful within an "if"/conditional.
ConstNumberSource: `ConstNumberSource` is the base class for all constant numbers
ConstValueSource: `ConstValueSource` returns a constant for all documents
DefFunction: `ValueSource` implementation which only returns the values from the provided ValueSources which are available for a particular docId.
DivFloatFunction: Function to divide "a" by "b"
DocFreqValueSource: `DocFreqValueSource` returns the number of documents containing the term.
DoubleConstValueSource: Function that returns a constant double value for every document.
DoubleFieldSource: Obtains double field values from `LeafReader.getNumericDocValues(java.lang.String)` and makes those values available as other numeric types, casting as needed.
DualFloatFunction: Abstract `ValueSource` implementation which wraps two ValueSources and applies an extendible float function to their values.
EnumFieldSource: Obtains int field values from `LeafReader.getNumericDocValues(java.lang.String)` and makes those values available as other numeric types, casting as needed.
FieldCacheSource: A base class for ValueSource implementations that retrieve values for a single field from DocValues.
FloatFieldSource: Obtains float field values from `LeafReader.getNumericDocValues(java.lang.String)` and makes those values available as other numeric types, casting as needed.
IDFValueSource: Function that returns `#idf(long, long)` for every document.
IfFunction: Depending on the boolean value of the `ifSource` function, returns the value of the `trueSource` or `falseSource` function.
IntFieldSource: Obtains int field values from `LeafReader.getNumericDocValues(java.lang.String)` and makes those values available as other numeric types, casting as needed.
JoinDocFreqValueSource: Use a field value and find the Document Frequency within another field.
LinearFloatFunction: `LinearFloatFunction` implements a linear function over another `ValueSource`.
LiteralValueSource: Pass a the field value through as a String, no matter the type // Q: doesn't this mean it's a "string"?
LongFieldSource: Obtains long field values from `LeafReader.getNumericDocValues(java.lang.String)` and makes those values available as other numeric types, casting as needed.
MaxDocValueSource: Returns the value of `IndexReader.maxDoc()` for every document.
MaxFloatFunction: `MaxFloatFunction` returns the max of its components.
MinFloatFunction: `MinFloatFunction` returns the min of its components.
MultiBoolFunction: Abstract `ValueSource` implementation which wraps multiple ValueSources and applies an extendible boolean function to their values.
MultiFloatFunction: Abstract `ValueSource` implementation which wraps multiple ValueSources and applies an extendible float function to their values.
MultiFunction: Abstract parent class for `ValueSource` implementations that wrap multiple ValueSources and apply their own logic.
MultiValuedDoubleFieldSource: Obtains double field values from `LeafReader.getSortedNumericDocValues(java.lang.String)` and using a `SortedNumericSelector` it gives a single-valued ValueSource view of a field.
MultiValuedFloatFieldSource: Obtains float field values from `LeafReader.getSortedNumericDocValues(java.lang.String)` and using a `SortedNumericSelector` it gives a single-valued ValueSource view of a field.
MultiValuedIntFieldSource: Obtains int field values from `LeafReader.getSortedNumericDocValues(java.lang.String)` and using a `SortedNumericSelector` it gives a single-valued ValueSource view of a field.
MultiValuedLongFieldSource: Obtains long field values from `LeafReader.getSortedNumericDocValues(java.lang.String)` and using a `SortedNumericSelector` it gives a single-valued ValueSource view of a field.
MultiValueSource: A `ValueSource` that abstractly represents `ValueSource`s for poly fields, and other things.
NormValueSource: Function that returns the decoded norm for every document.
NumDocsValueSource: Returns the value of `IndexReader.numDocs()` for every document.
PowFloatFunction: Function to raise the base "a" to the power "b"
ProductFloatFunction: `ProductFloatFunction` returns the product of its components.
QueryValueSource: `QueryValueSource` returns the relevance score of the query
RangeMapFloatFunction: `RangeMapFloatFunction` implements a map function over another `ValueSource` whose values fall within min and max inclusive to target.
ReciprocalFloatFunction: `ReciprocalFloatFunction` implements a reciprocal function f(x) = a/(mx+b), based on the float value of a field or function as exported by `ValueSource`.
ScaleFloatFunction: Scales values to be between min and max.
SimpleBoolFunction: `BoolFunction` implementation which applies an extendible boolean function to the values of a single wrapped `ValueSource`.
SimpleFloatFunction: A simple float function with a single argument
SingleFunction: A function with a single argument
SortedSetFieldSource: Retrieves `FunctionValues` instances for multi-valued string based fields.
SumFloatFunction: `SumFloatFunction` returns the sum of its components.
SumTotalTermFreqValueSource: `SumTotalTermFreqValueSource` returns the number of tokens.
TermFreqValueSource: Function that returns `PostingsEnum.freq()` for the supplied term in every document.
TFValueSource: Function that returns `TFIDFSimilarity.tf(float)` for every document.
TotalTermFreqValueSource: `TotalTermFreqValueSource` returns the total term freq (sum of term freqs across all documents).
VectorValueSource: Converts individual ValueSource instances to leverage the FunctionValues *Val functions that work with multiple values, i.e.

## Package org.apache.lucene.queries.function.valuesource Description

A variety of functions to use with FunctionQuery.