- java.lang.Object
-
- org.apache.lucene.queries.function.FunctionValues
-
- Direct Known Subclasses:
BoolDocValues
,DocTermsIndexDocValues
,DoubleDocValues
,FloatDocValues
,IntDocValues
,LongDocValues
,MultiFunction.Values
,StrDocValues
,VectorFieldFunction
public abstract class FunctionValues extends java.lang.Object
Represents field values as different types. Normally created via aValueSource
for a particular field and reader.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
FunctionValues.ValueFiller
Abstraction of the logic required to fill the value of a specified doc into a reusableMutableValue
.
-
Constructor Summary
Constructors Constructor Description FunctionValues()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description boolean
boolVal(int doc)
boolean
bytesVal(int doc, BytesRefBuilder target)
returns the bytes representation of the string val - TODO: should this return the indexed raw bytes not?byte
byteVal(int doc)
void
byteVal(int doc, byte[] vals)
byte[]
byteVectorVal(int doc)
float
cost()
An estimate of the expected cost to return a value for a document.double
doubleVal(int doc)
void
doubleVal(int doc, double[] vals)
boolean
exists(int doc)
Returns true if there is a value for this documentExplanation
explain(int doc)
float
floatVal(int doc)
void
floatVal(int doc, float[] vals)
float[]
floatVectorVal(int doc)
ValueSourceScorer
getRangeScorer(Weight weight, LeafReaderContext readerContext, java.lang.String lowerVal, java.lang.String upperVal, boolean includeLower, boolean includeUpper)
Yields aScorer
that matches documents with values between the specified range, and that which produces scores equal tofloatVal(int)
.ValueSourceScorer
getScorer(Weight weight, LeafReaderContext readerContext)
Yields aScorer
that matches all documents, and that which produces scores equal tofloatVal(int)
.FunctionValues.ValueFiller
getValueFiller()
int
intVal(int doc)
void
intVal(int doc, int[] vals)
long
longVal(int doc)
void
longVal(int doc, long[] vals)
int
numOrd()
java.lang.Object
objectVal(int doc)
Native Java Object representation of the valueint
ordVal(int doc)
short
shortVal(int doc)
void
shortVal(int doc, short[] vals)
java.lang.String
strVal(int doc)
void
strVal(int doc, java.lang.String[] vals)
abstract java.lang.String
toString(int doc)
-
-
-
Method Detail
-
byteVal
public byte byteVal(int doc) throws java.io.IOException
- Throws:
java.io.IOException
-
shortVal
public short shortVal(int doc) throws java.io.IOException
- Throws:
java.io.IOException
-
floatVal
public float floatVal(int doc) throws java.io.IOException
- Throws:
java.io.IOException
-
intVal
public int intVal(int doc) throws java.io.IOException
- Throws:
java.io.IOException
-
longVal
public long longVal(int doc) throws java.io.IOException
- Throws:
java.io.IOException
-
doubleVal
public double doubleVal(int doc) throws java.io.IOException
- Throws:
java.io.IOException
-
strVal
public java.lang.String strVal(int doc) throws java.io.IOException
- Throws:
java.io.IOException
-
boolVal
public boolean boolVal(int doc) throws java.io.IOException
- Throws:
java.io.IOException
-
floatVectorVal
public float[] floatVectorVal(int doc) throws java.io.IOException
- Throws:
java.io.IOException
-
byteVectorVal
public byte[] byteVectorVal(int doc) throws java.io.IOException
- Throws:
java.io.IOException
-
bytesVal
public boolean bytesVal(int doc, BytesRefBuilder target) throws java.io.IOException
returns the bytes representation of the string val - TODO: should this return the indexed raw bytes not?- Throws:
java.io.IOException
-
objectVal
public java.lang.Object objectVal(int doc) throws java.io.IOException
Native Java Object representation of the value- Throws:
java.io.IOException
-
exists
public boolean exists(int doc) throws java.io.IOException
Returns true if there is a value for this document- Throws:
java.io.IOException
-
ordVal
public int ordVal(int doc) throws java.io.IOException
- Parameters:
doc
- The doc to retrieve to sort ordinal for- Returns:
- the sort ordinal for the specified doc TODO: Maybe we can just use intVal for this...
- Throws:
java.io.IOException
-
numOrd
public int numOrd()
- Returns:
- the number of unique sort ordinals this instance has
-
cost
public float cost()
An estimate of the expected cost to return a value for a document. It's intended to be used by TwoPhaseIterator.matchCost implementations. Returns an expected cost in number of simple operations like addition, multiplication, comparing two numbers and indexing an array. The returned value must be positive.
-
toString
public abstract java.lang.String toString(int doc) throws java.io.IOException
- Throws:
java.io.IOException
-
getValueFiller
public FunctionValues.ValueFiller getValueFiller()
-
byteVal
public void byteVal(int doc, byte[] vals) throws java.io.IOException
- Throws:
java.io.IOException
-
shortVal
public void shortVal(int doc, short[] vals) throws java.io.IOException
- Throws:
java.io.IOException
-
floatVal
public void floatVal(int doc, float[] vals) throws java.io.IOException
- Throws:
java.io.IOException
-
intVal
public void intVal(int doc, int[] vals) throws java.io.IOException
- Throws:
java.io.IOException
-
longVal
public void longVal(int doc, long[] vals) throws java.io.IOException
- Throws:
java.io.IOException
-
doubleVal
public void doubleVal(int doc, double[] vals) throws java.io.IOException
- Throws:
java.io.IOException
-
strVal
public void strVal(int doc, java.lang.String[] vals) throws java.io.IOException
- Throws:
java.io.IOException
-
explain
public Explanation explain(int doc) throws java.io.IOException
- Throws:
java.io.IOException
-
getScorer
public ValueSourceScorer getScorer(Weight weight, LeafReaderContext readerContext)
Yields aScorer
that matches all documents, and that which produces scores equal tofloatVal(int)
.
-
getRangeScorer
public ValueSourceScorer getRangeScorer(Weight weight, LeafReaderContext readerContext, java.lang.String lowerVal, java.lang.String upperVal, boolean includeLower, boolean includeUpper) throws java.io.IOException
Yields aScorer
that matches documents with values between the specified range, and that which produces scores equal tofloatVal(int)
.- Throws:
java.io.IOException
-
-