Class DoubleValuesSource
- All Implemented Interfaces:
SegmentCacheable
DoubleValues
To obtain a DoubleValues
object for a leaf reader, clients should call rewrite(IndexSearcher)
against the top-level searcher, and then call getValues(LeafReaderContext, DoubleValues)
on the resulting DoubleValuesSource.
DoubleValuesSource objects for NumericDocValues fields can be obtained by calling fromDoubleField(String)
, fromFloatField(String)
, fromIntField(String)
or
fromLongField(String)
, or from fromField(String, LongToDoubleFunction)
if
special long-to-double encoding is required.
Scores may be used as a source for value calculations by wrapping a Scorer
using
fromScorer(Scorable)
and passing the resulting DoubleValues to getValues(LeafReaderContext, DoubleValues)
. The scores can then be accessed using the SCORES
DoubleValuesSource.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final DoubleValuesSource
A DoubleValuesSource that exposes a document's score -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic DoubleValuesSource
constant
(double value) Creates a DoubleValuesSource that always returns a constant valueabstract boolean
explain
(LeafReaderContext ctx, int docId, Explanation scoreExplanation) An explanation of the value for the named document.static DoubleValuesSource
fromDoubleField
(String field) Creates a DoubleValuesSource that wraps a double-valued fieldstatic DoubleValuesSource
fromField
(String field, LongToDoubleFunction decoder) Creates a DoubleValuesSource that wraps a generic NumericDocValues fieldstatic DoubleValuesSource
fromFloatField
(String field) Creates a DoubleValuesSource that wraps a float-valued fieldstatic DoubleValuesSource
fromIntField
(String field) Creates a DoubleValuesSource that wraps an int-valued fieldstatic DoubleValuesSource
fromLongField
(String field) Creates a DoubleValuesSource that wraps a long-valued fieldstatic DoubleValuesSource
Create a DoubleValuesSource that returns the score of a particular querystatic DoubleValues
fromScorer
(Scorable scorer) Returns a DoubleValues instance that wraps scores returned by a Scorer.getSortField
(boolean reverse) Create a sort field based on the value of this producerabstract DoubleValues
getValues
(LeafReaderContext ctx, DoubleValues scores) Returns aDoubleValues
instance for the passed-in LeafReaderContext and scoresabstract int
hashCode()
abstract boolean
Return true if document scores are needed to calculate valuesabstract DoubleValuesSource
rewrite
(IndexSearcher reader) Return a DoubleValuesSource specialised for the given IndexSearcherfinal LongValuesSource
Convert to a LongValuesSource by casting the double values to longsabstract String
toString()
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.lucene.search.SegmentCacheable
isCacheable
-
Field Details
-
SCORES
A DoubleValuesSource that exposes a document's scoreIf this source is used as part of a values calculation, then callers must not pass
null
as theDoubleValues
parameter ongetValues(LeafReaderContext, DoubleValues)
-
-
Constructor Details
-
DoubleValuesSource
public DoubleValuesSource()
-
-
Method Details
-
getValues
public abstract DoubleValues getValues(LeafReaderContext ctx, DoubleValues scores) throws IOException Returns aDoubleValues
instance for the passed-in LeafReaderContext and scoresIf scores are not needed to calculate the values (ie
returns false
, callers may safely passnull
for thescores
parameter.- Throws:
IOException
-
needsScores
public abstract boolean needsScores()Return true if document scores are needed to calculate values -
explain
public Explanation explain(LeafReaderContext ctx, int docId, Explanation scoreExplanation) throws IOException An explanation of the value for the named document.- Parameters:
ctx
- the readers context to create theExplanation
for.docId
- the document's id relative to the given context's reader- Returns:
- an Explanation for the value
- Throws:
IOException
- if anIOException
occurs
-
rewrite
Return a DoubleValuesSource specialised for the given IndexSearcherImplementations should assume that this will only be called once. IndexReader-independent implementations can just return
this
Queries that use DoubleValuesSource objects should call rewrite() during
Query.createWeight(IndexSearcher, ScoreMode, float)
rather than duringQuery.rewrite(IndexReader)
to avoid IndexReader reference leakage.For the same reason, implementations that cache references to the IndexSearcher should return a new object from this method.
- Throws:
IOException
-
getSortField
Create a sort field based on the value of this producer- Parameters:
reverse
- true if the sort should be decreasing
-
hashCode
public abstract int hashCode() -
equals
-
toString
-
toLongValuesSource
Convert to a LongValuesSource by casting the double values to longs -
fromField
Creates a DoubleValuesSource that wraps a generic NumericDocValues field- Parameters:
field
- the field to wrap, must have NumericDocValuesdecoder
- a function to convert the long-valued doc values to doubles
-
fromDoubleField
Creates a DoubleValuesSource that wraps a double-valued field -
fromFloatField
Creates a DoubleValuesSource that wraps a float-valued field -
fromLongField
Creates a DoubleValuesSource that wraps a long-valued field -
fromIntField
Creates a DoubleValuesSource that wraps an int-valued field -
constant
Creates a DoubleValuesSource that always returns a constant value -
fromScorer
Returns a DoubleValues instance that wraps scores returned by a Scorer.Note: If you intend to call
Scorable.score()
on the providedscorer
separately, you may want to consider wrapping it withScoreCachingWrappingScorer.wrap(Scorable)
to avoid computing the actual score multiple times. -
fromQuery
Create a DoubleValuesSource that returns the score of a particular query
-