Class Lucene91HnswVectorsReader
- All Implemented Interfaces:
Closeable,AutoCloseable,Accountable
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classprivate static final classRead the nearest-neighbors graph from the index input(package private) static classRead the vector values from the index input. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final FieldInfosprivate final Map<String,Lucene91HnswVectorsReader.FieldEntry> private final IndexInputprivate final IndexInputFields inherited from interface org.apache.lucene.util.Accountable
NULL_ACCOUNTABLE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidChecks consistency of this reader.voidclose()private BitsgetAcceptOrds(Bits acceptDocs, Lucene91HnswVectorsReader.FieldEntry fieldEntry) Get knn graph values; used for testingprivate HnswGraphgetVectorValues(String field) Returns theVectorValuesfor the givenfield.private static IndexInputopenDataInput(SegmentReadState state, int versionMeta, String fileExtension, String codecName) longReturn the memory usage of this object in bytes.private voidreadFields(ChecksumIndexInput meta, FieldInfos infos) private intreadMetadata(SegmentReadState state) private VectorSimilarityFunctionreadSimilarityFunction(DataInput input) 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.private voidvalidateFieldEntry(FieldInfo info, Lucene91HnswVectorsReader.FieldEntry fieldEntry) Methods inherited from class org.apache.lucene.codecs.KnnVectorsReader
getMergeInstanceMethods 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
-
fieldInfos
-
fields
-
vectorData
-
vectorIndex
-
-
Constructor Details
-
Lucene91HnswVectorsReader
Lucene91HnswVectorsReader(SegmentReadState state) throws IOException - Throws:
IOException
-
-
Method Details
-
readMetadata
- Throws:
IOException
-
openDataInput
private static IndexInput openDataInput(SegmentReadState state, int versionMeta, String fileExtension, String codecName) throws IOException - Throws:
IOException
-
readFields
- Throws:
IOException
-
validateFieldEntry
-
readSimilarityFunction
- Throws:
IOException
-
readField
- Throws:
IOException
-
ramBytesUsed
public long ramBytesUsed()Description copied from interface:AccountableReturn the memory usage of this object in bytes. Negative values are illegal. -
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
-
getVectorValues
Description copied from class:KnnVectorsReaderReturns theVectorValuesfor 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:
getVectorValuesin classKnnVectorsReader- Throws:
IOException
-
search
public TopDocs search(String field, float[] target, int k, Bits acceptDocs, int visitedLimit) 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 queryk- the number of docs to returnacceptDocs-Bitsthat represents the allowed documents to match, ornullif they are all allowed to match.visitedLimit- the maximum number of nodes that the search is allowed to visit- Returns:
- the k nearest neighbor documents, along with their (searchStrategy-specific) scores.
- Throws:
IOException
-
getOffHeapVectorValues
private Lucene91HnswVectorsReader.OffHeapVectorValues getOffHeapVectorValues(Lucene91HnswVectorsReader.FieldEntry fieldEntry) throws IOException - Throws:
IOException
-
getAcceptOrds
-
getGraph
Get knn graph values; used for testing- Throws:
IOException
-
getGraph
- Throws:
IOException
-
close
- Throws:
IOException
-