Class PerFieldKnnVectorsFormat.FieldsReader
- All Implemented Interfaces:
Closeable
,AutoCloseable
- Enclosing class:
PerFieldKnnVectorsFormat
-
Constructor Summary
ConstructorsConstructorDescriptionFieldsReader
(SegmentReadState readState) Create a FieldsReader over a segment, opening VectorReaders for each KnnVectorsFormat specified by the indexed numeric vector fields. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Checks consistency of this reader.void
close()
void
Optional: reset or close merge resources used in the readergetByteVectorValues
(String field) Returns theByteVectorValues
for the givenfield
.getFieldReader
(String field) Return the underlying VectorReader for the given fieldgetFloatVectorValues
(String field) Returns theFloatVectorValues
for the givenfield
.Returns an instance optimized for merging.void
search
(String field, byte[] target, KnnCollector knnCollector, Bits acceptDocs) Return the k nearest neighbor documents as determined by comparison of their vector values for this field, to the given vector, by the field's similarity function.void
search
(String field, float[] target, KnnCollector knnCollector, Bits acceptDocs) Return the k nearest neighbor documents as determined by comparison of their vector values for this field, to the given vector, by the field's similarity function.
-
Constructor Details
-
FieldsReader
Create a FieldsReader over a segment, opening VectorReaders for each KnnVectorsFormat specified by the indexed numeric vector fields.- Parameters:
readState
- defines the fields- Throws:
IOException
- if one of the delegate readers throws
-
-
Method Details
-
getMergeInstance
Description copied from class:KnnVectorsReader
Returns an instance optimized for merging. This instance may only be consumed in the thread that calledKnnVectorsReader.getMergeInstance()
.The default implementation returns
this
- Overrides:
getMergeInstance
in classKnnVectorsReader
-
finishMerge
Description copied from class:KnnVectorsReader
Optional: reset or close merge resources used in the readerThe default implementation is empty
- Overrides:
finishMerge
in classKnnVectorsReader
- Throws:
IOException
-
getFieldReader
Return the underlying VectorReader for the given field- Parameters:
field
- the name of a numeric vector field
-
checkIntegrity
Description copied from class:KnnVectorsReader
Checks consistency of this reader.Note that this may be costly in terms of I/O, e.g. may involve computing a checksum value against large data files.
- Specified by:
checkIntegrity
in classKnnVectorsReader
- Throws:
IOException
-
getFloatVectorValues
Description copied from class:KnnVectorsReader
Returns theFloatVectorValues
for the givenfield
. The behavior is undefined if the given field doesn't have KNN vectors enabled on itsFieldInfo
. The return value is nevernull
.- Specified by:
getFloatVectorValues
in classKnnVectorsReader
- Throws:
IOException
-
getByteVectorValues
Description copied from class:KnnVectorsReader
Returns theByteVectorValues
for the givenfield
. The behavior is undefined if the given field doesn't have KNN vectors enabled on itsFieldInfo
. The return value is nevernull
.- Specified by:
getByteVectorValues
in classKnnVectorsReader
- Throws:
IOException
-
search
public void search(String field, float[] target, KnnCollector knnCollector, Bits acceptDocs) throws IOException Description copied from class:KnnVectorsReader
Return the k nearest neighbor documents as determined by comparison of their vector values for this field, to the given vector, by the field's similarity function. The score of each document is derived from the vector similarity in a way that ensures scores are positive and that a larger score corresponds to a higher ranking.The search is allowed to be approximate, meaning the results are not guaranteed to be the true k closest neighbors. For large values of k (for example when k is close to the total number of documents), the search may also retrieve fewer than k documents.
The returned
TopDocs
will contain aScoreDoc
for each nearest neighbor, in order of their similarity to the query vector (decreasing scores). TheTotalHits
contains the number of documents visited during the search. If the search stopped early because it hitvisitedLimit
, it is indicated through the relationTotalHits.Relation.GREATER_THAN_OR_EQUAL_TO
.The behavior is undefined if the given field doesn't have KNN vectors enabled on its
FieldInfo
. The return value is nevernull
.- Specified by:
search
in classKnnVectorsReader
- Parameters:
field
- the vector field to searchtarget
- the vector-valued queryknnCollector
- a KnnResults collector and relevant settings for gathering vector resultsacceptDocs
-Bits
that represents the allowed documents to match, ornull
if they are all allowed to match.- Throws:
IOException
-
search
public void search(String field, byte[] target, KnnCollector knnCollector, Bits acceptDocs) throws IOException Description copied from class:KnnVectorsReader
Return the k nearest neighbor documents as determined by comparison of their vector values for this field, to the given vector, by the field's similarity function. The score of each document is derived from the vector similarity in a way that ensures scores are positive and that a larger score corresponds to a higher ranking.The search is allowed to be approximate, meaning the results are not guaranteed to be the true k closest neighbors. For large values of k (for example when k is close to the total number of documents), the search may also retrieve fewer than k documents.
The returned
TopDocs
will contain aScoreDoc
for each nearest neighbor, in order of their similarity to the query vector (decreasing scores). TheTotalHits
contains the number of documents visited during the search. If the search stopped early because it hitvisitedLimit
, it is indicated through the relationTotalHits.Relation.GREATER_THAN_OR_EQUAL_TO
.The behavior is undefined if the given field doesn't have KNN vectors enabled on its
FieldInfo
. The return value is nevernull
.- Specified by:
search
in classKnnVectorsReader
- Parameters:
field
- the vector field to searchtarget
- the vector-valued queryknnCollector
- a KnnResults collector and relevant settings for gathering vector resultsacceptDocs
-Bits
that represents the allowed documents to match, ornull
if they are all allowed to match.- Throws:
IOException
-
close
- Throws:
IOException
-