Class Lucene99ScalarQuantizedVectorsWriter
- java.lang.Object
-
- org.apache.lucene.codecs.hnsw.FlatVectorsWriter
-
- org.apache.lucene.codecs.lucene99.Lucene99ScalarQuantizedVectorsWriter
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Accountable
public final class Lucene99ScalarQuantizedVectorsWriter extends FlatVectorsWriter
Writes quantized vector values and metadata to index segments.- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Field Summary
-
Fields inherited from class org.apache.lucene.codecs.hnsw.FlatVectorsWriter
vectorsScorer
-
Fields inherited from interface org.apache.lucene.util.Accountable
NULL_ACCOUNTABLE
-
-
Constructor Summary
Constructors Constructor Description Lucene99ScalarQuantizedVectorsWriter(SegmentWriteState state, Float confidenceInterval, byte bits, boolean compress, FlatVectorsWriter rawVectorDelegate, FlatVectorsScorer scorer)
Lucene99ScalarQuantizedVectorsWriter(SegmentWriteState state, Float confidenceInterval, FlatVectorsWriter rawVectorDelegate, FlatVectorsScorer scorer)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description FlatFieldVectorsWriter<?>
addField(FieldInfo fieldInfo, KnnFieldVectorsWriter<?> indexWriter)
Add a new field for indexing, allowing the user to provide a writer that the flat vectors writer can delegate to if additional indexing logic is required.void
close()
void
finish()
Called once at the end before closevoid
flush(int maxDoc, Sorter.DocMap sortMap)
Flush all buffered data on disk *static ScalarQuantizer
mergeAndRecalculateQuantiles(MergeState mergeState, FieldInfo fieldInfo, Float confidenceInterval, byte bits)
Merges the quantiles of the segments and recalculates the quantiles if necessary.void
mergeOneField(FieldInfo fieldInfo, MergeState mergeState)
Write field for mergingCloseableRandomVectorScorerSupplier
mergeOneFieldToIndex(FieldInfo fieldInfo, MergeState mergeState)
Write the field for merging, providing a scorer over the newly merged flat vectors.long
ramBytesUsed()
Return the memory usage of this object in bytes.static DocsWithFieldSet
writeQuantizedVectorData(IndexOutput output, QuantizedByteVectorValues quantizedByteVectorValues, byte bits, boolean compress)
Writes the vector values to the output and returns a set of documents that contains vectors.-
Methods inherited from class org.apache.lucene.codecs.hnsw.FlatVectorsWriter
getFlatVectorScorer
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.lucene.util.Accountable
getChildResources
-
-
-
-
Constructor Detail
-
Lucene99ScalarQuantizedVectorsWriter
public Lucene99ScalarQuantizedVectorsWriter(SegmentWriteState state, Float confidenceInterval, FlatVectorsWriter rawVectorDelegate, FlatVectorsScorer scorer) throws IOException
- Throws:
IOException
-
Lucene99ScalarQuantizedVectorsWriter
public Lucene99ScalarQuantizedVectorsWriter(SegmentWriteState state, Float confidenceInterval, byte bits, boolean compress, FlatVectorsWriter rawVectorDelegate, FlatVectorsScorer scorer) throws IOException
- Throws:
IOException
-
-
Method Detail
-
addField
public FlatFieldVectorsWriter<?> addField(FieldInfo fieldInfo, KnnFieldVectorsWriter<?> indexWriter) throws IOException
Description copied from class:FlatVectorsWriter
Add a new field for indexing, allowing the user to provide a writer that the flat vectors writer can delegate to if additional indexing logic is required.- Specified by:
addField
in classFlatVectorsWriter
- Parameters:
fieldInfo
- fieldInfo of the field to addindexWriter
- the writer to delegate to, can be null- Returns:
- a writer for the field
- Throws:
IOException
- if an I/O error occurs when adding the field
-
mergeOneField
public void mergeOneField(FieldInfo fieldInfo, MergeState mergeState) throws IOException
Description copied from class:FlatVectorsWriter
Write field for merging- Overrides:
mergeOneField
in classFlatVectorsWriter
- Throws:
IOException
-
mergeOneFieldToIndex
public CloseableRandomVectorScorerSupplier mergeOneFieldToIndex(FieldInfo fieldInfo, MergeState mergeState) throws IOException
Description copied from class:FlatVectorsWriter
Write the field for merging, providing a scorer over the newly merged flat vectors. This way any additional merging logic can be implemented by the user of this class.- Specified by:
mergeOneFieldToIndex
in classFlatVectorsWriter
- Parameters:
fieldInfo
- fieldInfo of the field to mergemergeState
- mergeState of the segments to merge- Returns:
- a scorer over the newly merged flat vectors, which should be closed as it holds a temporary file handle to read over the newly merged vectors
- Throws:
IOException
- if an I/O error occurs when merging
-
flush
public void flush(int maxDoc, Sorter.DocMap sortMap) throws IOException
Description copied from class:FlatVectorsWriter
Flush all buffered data on disk *- Specified by:
flush
in classFlatVectorsWriter
- Throws:
IOException
-
finish
public void finish() throws IOException
Description copied from class:FlatVectorsWriter
Called once at the end before close- Specified by:
finish
in classFlatVectorsWriter
- Throws:
IOException
-
ramBytesUsed
public long ramBytesUsed()
Description copied from interface:Accountable
Return the memory usage of this object in bytes. Negative values are illegal.
-
mergeAndRecalculateQuantiles
public static ScalarQuantizer mergeAndRecalculateQuantiles(MergeState mergeState, FieldInfo fieldInfo, Float confidenceInterval, byte bits) throws IOException
Merges the quantiles of the segments and recalculates the quantiles if necessary.- Parameters:
mergeState
- The merge statefieldInfo
- The field infoconfidenceInterval
- The confidence intervalbits
- The number of bits- Returns:
- The merged quantiles
- Throws:
IOException
- If there is a low-level I/O error
-
writeQuantizedVectorData
public static DocsWithFieldSet writeQuantizedVectorData(IndexOutput output, QuantizedByteVectorValues quantizedByteVectorValues, byte bits, boolean compress) throws IOException
Writes the vector values to the output and returns a set of documents that contains vectors.- Throws:
IOException
-
close
public void close() throws IOException
- Throws:
IOException
-
-