Class Lucene102HnswBinaryQuantizedVectorsFormat
java.lang.Object
org.apache.lucene.codecs.KnnVectorsFormat
org.apache.lucene.backward_codecs.lucene102.Lucene102HnswBinaryQuantizedVectorsFormat
- All Implemented Interfaces:
NamedSPILoader.NamedSPI
A vectors format that uses HNSW graph to store and search for vectors. But vectors are binary
quantized using
Lucene102BinaryQuantizedVectorsFormat before being stored in the graph.-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final intThe number of candidate neighbors to track while searching the graph for each newly inserted node.protected static final FlatVectorsFormatThe format for storing, reading, merging vectors on diskprotected final intControls how many of the nearest neighbor candidates are connected to the new node.protected final TaskExecutorTheTaskExecutorthat will be used to do merge.protected final intNumber of workers (threads) that will be used when doing merge.Fields inherited from class org.apache.lucene.codecs.KnnVectorsFormat
DEFAULT_MAX_DIMENSIONS, EMPTY -
Constructor Summary
ConstructorsConstructorDescriptionConstructs a format using default graph construction parametersLucene102HnswBinaryQuantizedVectorsFormat(int maxConn, int beamWidth, int numMergeWorkers, ExecutorService mergeExec) Constructs a format using the given graph construction parameters and scalar quantization. -
Method Summary
Modifier and TypeMethodDescriptionfieldsReader(SegmentReadState state) fieldsWriter(SegmentWriteState state) intgetMaxDimensions(String fieldName) toString()Methods inherited from class org.apache.lucene.codecs.KnnVectorsFormat
availableKnnVectorsFormats, forName, getName, reloadKnnVectorsFormat
-
Field Details
-
maxConn
protected final int maxConnControls how many of the nearest neighbor candidates are connected to the new node. Defaults toLucene99HnswVectorsFormat.DEFAULT_MAX_CONN. SeeHnswGraphfor more details. -
beamWidth
protected final int beamWidthThe number of candidate neighbors to track while searching the graph for each newly inserted node. Defaults toLucene99HnswVectorsFormat.DEFAULT_BEAM_WIDTH. SeeHnswGraphfor details. -
flatVectorsFormat
The format for storing, reading, merging vectors on disk -
numMergeWorkers
protected final int numMergeWorkersNumber of workers (threads) that will be used when doing merge. -
mergeExec
TheTaskExecutorthat will be used to do merge.
-
-
Constructor Details
-
Lucene102HnswBinaryQuantizedVectorsFormat
public Lucene102HnswBinaryQuantizedVectorsFormat()Constructs a format using default graph construction parameters -
Lucene102HnswBinaryQuantizedVectorsFormat
public Lucene102HnswBinaryQuantizedVectorsFormat(int maxConn, int beamWidth, int numMergeWorkers, ExecutorService mergeExec) Constructs a format using the given graph construction parameters and scalar quantization.- Parameters:
maxConn- the maximum number of connections to a node in the HNSW graphbeamWidth- the size of the queue maintained during graph construction.numMergeWorkers- number of workers (threads) that will be used when doing merge. If larger than 1, a non-nullExecutorServicemust be passed as mergeExecmergeExec- theExecutorServicethat will be used by ALL vector writers that are generated by this format to do the merge
-
-
Method Details
-
fieldsWriter
- Specified by:
fieldsWriterin classKnnVectorsFormat- Throws:
IOException
-
fieldsReader
- Specified by:
fieldsReaderin classKnnVectorsFormat- Throws:
IOException
-
getMaxDimensions
- Specified by:
getMaxDimensionsin classKnnVectorsFormat
-
toString
-