Package org.apache.lucene.util.hnsw
Class ConcurrentHnswMerger
java.lang.Object
org.apache.lucene.util.hnsw.IncrementalHnswGraphMerger
org.apache.lucene.util.hnsw.ConcurrentHnswMerger
- All Implemented Interfaces:
HnswGraphMerger
This merger merges graph in a concurrent manner, by using
HnswConcurrentMergeBuilder
-
Field Summary
Fields inherited from class org.apache.lucene.util.hnsw.IncrementalHnswGraphMerger
beamWidth, fieldInfo, initDocMap, initGraphSize, initReader, M, scorerSupplier
-
Constructor Summary
ConstructorDescriptionConcurrentHnswMerger
(FieldInfo fieldInfo, RandomVectorScorerSupplier scorerSupplier, int M, int beamWidth, TaskExecutor taskExecutor, int numWorker) -
Method Summary
Modifier and TypeMethodDescriptionprotected HnswBuilder
createBuilder
(DocIdSetIterator mergedVectorIterator, int maxOrd) Builds a new HnswGraphBuilder using the biggest graph from the merge state as a starting point.Methods inherited from class org.apache.lucene.util.hnsw.IncrementalHnswGraphMerger
addReader, getNewOrdMapping, merge
-
Constructor Details
-
ConcurrentHnswMerger
public ConcurrentHnswMerger(FieldInfo fieldInfo, RandomVectorScorerSupplier scorerSupplier, int M, int beamWidth, TaskExecutor taskExecutor, int numWorker) - Parameters:
fieldInfo
- FieldInfo for the field being merged
-
-
Method Details
-
createBuilder
protected HnswBuilder createBuilder(DocIdSetIterator mergedVectorIterator, int maxOrd) throws IOException Description copied from class:IncrementalHnswGraphMerger
Builds a new HnswGraphBuilder using the biggest graph from the merge state as a starting point. If no valid readers were added to the merge state, a new graph is created.- Overrides:
createBuilder
in classIncrementalHnswGraphMerger
- Parameters:
mergedVectorIterator
- iterator over the vectors in the merged segmentmaxOrd
- max num of vectors that will be merged into the graph- Returns:
- HnswGraphBuilder
- Throws:
IOException
- If an error occurs while reading from the merge state
-