Class Lucene99HnswVectorsReader
- All Implemented Interfaces:
Closeable,AutoCloseable,HnswGraphProvider,Accountable,QuantizedVectorsReader
- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
Field Summary
FieldsFields inherited from interface org.apache.lucene.util.Accountable
NULL_ACCOUNTABLE -
Constructor Summary
ConstructorsConstructorDescriptionLucene99HnswVectorsReader(SegmentReadState state, FlatVectorsReader flatVectorsReader) -
Method Summary
Modifier and TypeMethodDescriptionvoidChecks consistency of this reader.voidclose()voidOptional: reset or close merge resources used in the readergetByteVectorValues(String field) Returns theByteVectorValuesfor the givenfield.getFloatVectorValues(String field) Returns theFloatVectorValuesfor the givenfield.Return the stored HnswGraph for the given field.Returns an instance optimized for merging.getQuantizationState(String field) getQuantizedVectorValues(String field) longReturn the memory usage of this object in bytes.static VectorSimilarityFunctionreadSimilarityFunction(DataInput input) static VectorEncodingreadVectorEncoding(DataInput input) voidsearch(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.voidsearch(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.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.lucene.util.Accountable
getChildResources
-
Field Details
-
SIMILARITY_FUNCTIONS
-
-
Constructor Details
-
Lucene99HnswVectorsReader
public Lucene99HnswVectorsReader(SegmentReadState state, FlatVectorsReader flatVectorsReader) throws IOException - Throws:
IOException
-
-
Method Details
-
getMergeInstance
Description copied from class:KnnVectorsReaderReturns an instance optimized for merging. This instance may only be consumed in the thread that calledKnnVectorsReader.getMergeInstance().The default implementation returns
this- Overrides:
getMergeInstancein classKnnVectorsReader
-
finishMerge
Description copied from class:KnnVectorsReaderOptional: reset or close merge resources used in the readerThe default implementation is empty
- Overrides:
finishMergein classKnnVectorsReader- Throws:
IOException
-
readSimilarityFunction
- Throws:
IOException
-
readVectorEncoding
- Throws:
IOException
-
ramBytesUsed
public long ramBytesUsed()Description copied from interface:AccountableReturn the memory usage of this object in bytes. Negative values are illegal.- Specified by:
ramBytesUsedin interfaceAccountable
-
checkIntegrity
Description copied from class:KnnVectorsReaderChecks 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:
checkIntegrityin classKnnVectorsReader- Throws:
IOException
-
getFloatVectorValues
Description copied from class:KnnVectorsReaderReturns theFloatVectorValuesfor 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:
getFloatVectorValuesin classKnnVectorsReader- Throws:
IOException
-
getByteVectorValues
Description copied from class:KnnVectorsReaderReturns theByteVectorValuesfor 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:
getByteVectorValuesin classKnnVectorsReader- Throws:
IOException
-
search
public void search(String field, float[] target, KnnCollector knnCollector, Bits acceptDocs) throws IOException Description copied from class:KnnVectorsReaderReturn 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
TopDocswill contain aScoreDocfor each nearest neighbor, in order of their similarity to the query vector (decreasing scores). TheTotalHitscontains 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:
searchin classKnnVectorsReader- Parameters:
field- the vector field to searchtarget- the vector-valued queryknnCollector- a KnnResults collector and relevant settings for gathering vector resultsacceptDocs-Bitsthat represents the allowed documents to match, ornullif 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:KnnVectorsReaderReturn 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
TopDocswill contain aScoreDocfor each nearest neighbor, in order of their similarity to the query vector (decreasing scores). TheTotalHitscontains 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:
searchin classKnnVectorsReader- Parameters:
field- the vector field to searchtarget- the vector-valued queryknnCollector- a KnnResults collector and relevant settings for gathering vector resultsacceptDocs-Bitsthat represents the allowed documents to match, ornullif they are all allowed to match.- Throws:
IOException
-
getGraph
Description copied from interface:HnswGraphProviderReturn the stored HnswGraph for the given field.- Specified by:
getGraphin interfaceHnswGraphProvider- Parameters:
field- the field containing the graph- Returns:
- the HnswGraph for the given field if found
- Throws:
IOException- when reading potentially off-heap graph fails
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
getQuantizedVectorValues
- Specified by:
getQuantizedVectorValuesin interfaceQuantizedVectorsReader- Throws:
IOException
-
getQuantizationState
- Specified by:
getQuantizationStatein interfaceQuantizedVectorsReader
-