Class Lucene99FlatVectorsReader
- All Implemented Interfaces:
Closeable,AutoCloseable,Accountable
- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
Field Summary
Fields inherited from interface org.apache.lucene.util.Accountable
NULL_ACCOUNTABLE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidChecks consistency of this reader.voidclose()getByteVectorValues(String field) Returns theByteVectorValuesfor the givenfield.getFlatVectorScorer(String field) Returns aFlatVectorsScorerfor the given field.getFloatVectorValues(String field) Returns theFloatVectorValuesfor the givenfield.getFloatVectorValues(String field, DataAccessHint access) Returns theFloatVectorValuesfor the givenfield, to be read with the given access pattern, such asDataAccessHint.SEQUENTIALto read all vectors in order.Returns an instance optimized for merging.getOffHeapByteSize(FieldInfo fieldInfo) Returns the desired size of off-heap memory for the given field.getRandomVectorScorer(String field, byte[] target) Returns aRandomVectorScorerfor the given field and target vector.getRandomVectorScorer(String field, float[] target) Returns aRandomVectorScorerfor the given field and target vector.intgetVectorCount(FieldInfo fieldInfo) Returns the number of indexed vectors for the given field in this segment.longReturns an estimate of the JVM heap memory used by this object in bytes.Methods inherited from class org.apache.lucene.codecs.hnsw.FlatVectorsReader
search, searchMethods inherited from class org.apache.lucene.codecs.KnnVectorsReader
finishMerge, mergeOffHeapByteSizeMapsMethods 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
-
Constructor Details
-
Lucene99FlatVectorsReader
public Lucene99FlatVectorsReader(SegmentReadState state, FlatVectorsScorer scorer) throws IOException - Throws:
IOException
-
-
Method Details
-
ramBytesUsed
public long ramBytesUsed()Description copied from interface:AccountableReturns an estimate of the JVM heap memory used by this object in bytes. The method name uses "ram" for historical reasons; only JVM heap memory should be reported. Off-heap resources such as memory-mapped files or native direct buffers should not be included. Negative values are illegal. -
getOffHeapByteSize
Description copied from class:KnnVectorsReaderReturns the desired size of off-heap memory for the given field. This size can be used to help determine the memory requirements for optimal search performance, which can be greatly affected by page faults when not enough memory is available.For reporting purposes, the size of the off-heap index structures is broken down by their file extension, which provides a logical categorization of their purpose, e.g. the
Lucene99HnswVectorsFormatstores the HNSW graph neighbours lists in a file with the "vex" extension.The long value is the size in bytes of the off-heap space needed if the associated index structure were to be fully loaded in memory. While somewhat analogous to
Accountable.ramBytesUsed()(which reports actual on-heap memory usage), the sizes reported by this method are not actual usage but rather the amount of available memory needed to fully load the index into memory, rather than an actual RAM usage requirement.To determine the total desired off-heap memory size for the given field:
getOffHeapByteSize(field).values().stream().mapToLong(Long::longValue).sum();The default implementation returns an empty map.
- Overrides:
getOffHeapByteSizein classKnnVectorsReader- Parameters:
fieldInfo- the fieldInfo- Returns:
- a map of the desired off-heap memory requirements by category
-
getVectorCount
Description copied from class:KnnVectorsReaderReturns the number of indexed vectors for the given field in this segment.This has the same meaning as
get*VectorValues(field).size(): the number of vector ordinals stored forfieldInfoin this segment.Standard vector formats read this from segment metadata without opening vector values. The default implementation opens vector values as a fallback; callers that need to avoid that I/O should use a reader that overrides this method.
Opening vector values may read index data from storage and prefetch into memory, especially for sparse fields. That cost is why this metadata-only path exists, analogous to how doc values expose counts through
DocValuesSkipper.docCount()rather than iterating values.- Overrides:
getVectorCountin classKnnVectorsReader- Parameters:
fieldInfo- the fieldInfo- Returns:
- the number of indexed vectors for the field
-
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
-
getMergeInstance
Description copied from class:FlatVectorsReaderReturns an instance optimized for merging. This instance may only be consumed in the thread that calledFlatVectorsReader.getMergeInstance().The default implementation returns
this- Overrides:
getMergeInstancein classFlatVectorsReader- 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
-
getFloatVectorValues
public FloatVectorValues getFloatVectorValues(String field, DataAccessHint access) throws IOException Description copied from class:KnnVectorsReaderReturns theFloatVectorValuesfor the givenfield, to be read with the given access pattern, such asDataAccessHint.SEQUENTIALto read all vectors in order.The default implementation ignores
access.- Overrides:
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
-
getFlatVectorScorer
Description copied from class:FlatVectorsReaderReturns aFlatVectorsScorerfor the given field.- Specified by:
getFlatVectorScorerin classFlatVectorsReader- Parameters:
field- the field to search- Throws:
IOException
-
getRandomVectorScorer
Description copied from class:FlatVectorsReaderReturns aRandomVectorScorerfor the given field and target vector.- Specified by:
getRandomVectorScorerin classFlatVectorsReader- Parameters:
field- the field to searchtarget- the target vector- Returns:
- a
RandomVectorScorerfor the given field and target vector. - Throws:
IOException- if an I/O error occurs when reading from the index.
-
getRandomVectorScorer
Description copied from class:FlatVectorsReaderReturns aRandomVectorScorerfor the given field and target vector.- Specified by:
getRandomVectorScorerin classFlatVectorsReader- Parameters:
field- the field to searchtarget- the target vector- Returns:
- a
RandomVectorScorerfor the given field and target vector. - Throws:
IOException- if an I/O error occurs when reading from the index.
-
close
- Throws:
IOException
-