java.lang.Object
org.apache.lucene.search.DoubleValuesSource
org.apache.lucene.search.VectorSimilarityValuesSource
- All Implemented Interfaces:
SegmentCacheable
- Direct Known Subclasses:
ByteVectorSimilarityValuesSource
,FloatVectorSimilarityValuesSource
An abstract class that provides the vector similarity scores between the query vector and the
KnnFloatVectorField
or KnnByteVectorField
for documents.-
Field Summary
FieldsFields inherited from class org.apache.lucene.search.DoubleValuesSource
SCORES
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract VectorScorer
getValues
(LeafReaderContext ctx, DoubleValues scores) Returns aDoubleValues
instance for the passed-in LeafReaderContext and scoresboolean
boolean
Return true if document scores are needed to calculate valuesrewrite
(IndexSearcher reader) Return a DoubleValuesSource specialised for the given IndexSearcherMethods inherited from class org.apache.lucene.search.DoubleValuesSource
constant, equals, explain, fromDoubleField, fromField, fromFloatField, fromIntField, fromLongField, fromQuery, fromScorer, getSortField, hashCode, similarityToQueryVector, similarityToQueryVector, toLongValuesSource, toString
-
Field Details
-
fieldName
-
-
Constructor Details
-
VectorSimilarityValuesSource
-
-
Method Details
-
getValues
Description copied from class:DoubleValuesSource
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.- Specified by:
getValues
in classDoubleValuesSource
- Throws:
IOException
-
getScorer
- Throws:
IOException
-
needsScores
public boolean needsScores()Description copied from class:DoubleValuesSource
Return true if document scores are needed to calculate values- Specified by:
needsScores
in classDoubleValuesSource
-
rewrite
Description copied from class:DoubleValuesSource
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(IndexSearcher)
to avoid IndexReader reference leakage.For the same reason, implementations that cache references to the IndexSearcher should return a new object from this method.
- Specified by:
rewrite
in classDoubleValuesSource
- Throws:
IOException
-
isCacheable
- Returns:
true
if the object can be cached against a given leaf
-