Class Lucene99HnswVectorsWriter
java.lang.Object
org.apache.lucene.codecs.KnnVectorsWriter
org.apache.lucene.codecs.lucene99.Lucene99HnswVectorsWriter
- All Implemented Interfaces:
Closeable,AutoCloseable,Accountable
Writes vector values and knn graphs to index segments.
- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.lucene.codecs.KnnVectorsWriter
KnnVectorsWriter.MergedVectorValues -
Field Summary
Fields inherited from interface org.apache.lucene.util.Accountable
NULL_ACCOUNTABLE -
Constructor Summary
ConstructorsConstructorDescriptionLucene99HnswVectorsWriter(SegmentWriteState state, int M, int beamWidth, FlatVectorsFormat flatVectorsFormat, FlatVectorsWriter flatVectorWriter, int numMergeWorkers, TaskExecutor mergeExec) Lucene99HnswVectorsWriter(SegmentWriteState state, int M, int beamWidth, FlatVectorsFormat flatVectorsFormat, FlatVectorsWriter flatVectorWriter, int numMergeWorkers, TaskExecutor mergeExec, int tinySegmentsThreshold) -
Method Summary
Modifier and TypeMethodDescriptionAdd new field for indexingvoidclose()voidfinish()Called once at the end before closevoidflush(int maxDoc, Sorter.DocMap sortMap) Flush all buffered data on disk *mergeOneField(FieldInfo fieldInfo, MergeState mergeState) Merges vectors for a single field, returning a runnable for any deferred work (e.g., HNSW graph construction).longReturns an estimate of the JVM heap memory used by this object in bytes.Methods inherited from class org.apache.lucene.codecs.KnnVectorsWriter
mapOldOrdToNewOrd, mergeMethods 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
-
Lucene99HnswVectorsWriter
public Lucene99HnswVectorsWriter(SegmentWriteState state, int M, int beamWidth, FlatVectorsFormat flatVectorsFormat, FlatVectorsWriter flatVectorWriter, int numMergeWorkers, TaskExecutor mergeExec) throws IOException - Throws:
IOException
-
Lucene99HnswVectorsWriter
public Lucene99HnswVectorsWriter(SegmentWriteState state, int M, int beamWidth, FlatVectorsFormat flatVectorsFormat, FlatVectorsWriter flatVectorWriter, int numMergeWorkers, TaskExecutor mergeExec, int tinySegmentsThreshold) throws IOException - Throws:
IOException
-
-
Method Details
-
addField
Description copied from class:KnnVectorsWriterAdd new field for indexing- Specified by:
addFieldin classKnnVectorsWriter- Throws:
IOException
-
flush
Description copied from class:KnnVectorsWriterFlush all buffered data on disk *- Specified by:
flushin classKnnVectorsWriter- Throws:
IOException
-
finish
Description copied from class:KnnVectorsWriterCalled once at the end before close- Specified by:
finishin classKnnVectorsWriter- Throws:
IOException
-
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. -
mergeOneField
Description copied from class:KnnVectorsWriterMerges vectors for a single field, returning a runnable for any deferred work (e.g., HNSW graph construction). The default implementation merges naively the vectors and returnsnull(no deferred work).Subclasses should override this method may implement a two-phase merge strategy where flat vectors are written in the first phase and additional indexing structures (like HNSW graphs) are built in the second phase using the already-written flat vector data.
- Overrides:
mergeOneFieldin classKnnVectorsWriter- Parameters:
fieldInfo- the field to mergemergeState- the merge state- Returns:
- a runnable to execute in phase 2, or
nullif there is no deferred work - Throws:
IOException- if an I/O error occurs
-
close
- Throws:
IOException
-