Package org.apache.lucene.util.hnsw
Class HnswConcurrentMergeBuilder
java.lang.Object
org.apache.lucene.util.hnsw.HnswConcurrentMergeBuilder
- All Implemented Interfaces:
HnswBuilder
A graph builder that manages multiple workers, it only supports adding the whole graph all at
once. It will spawn a thread for each worker and the workers will pick the work in batches.
-
Constructor Summary
ConstructorDescriptionHnswConcurrentMergeBuilder
(TaskExecutor taskExecutor, int numWorker, RandomVectorScorerSupplier scorerSupplier, int M, int beamWidth, OnHeapHnswGraph hnsw, BitSet initializedNodes) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addGraphNode
(int node) Inserts a doc with vector value to the graphbuild
(int maxOrd) Adds all nodes to the graph up to the providedmaxOrd
.getGraph()
void
setInfoStream
(InfoStream infoStream) Set info-stream to output debugging information
-
Constructor Details
-
HnswConcurrentMergeBuilder
public HnswConcurrentMergeBuilder(TaskExecutor taskExecutor, int numWorker, RandomVectorScorerSupplier scorerSupplier, int M, int beamWidth, OnHeapHnswGraph hnsw, BitSet initializedNodes) throws IOException - Throws:
IOException
-
-
Method Details
-
build
Description copied from interface:HnswBuilder
Adds all nodes to the graph up to the providedmaxOrd
.- Specified by:
build
in interfaceHnswBuilder
- Parameters:
maxOrd
- The maximum ordinal (excluded) of the nodes to be added.- Throws:
IOException
-
addGraphNode
Description copied from interface:HnswBuilder
Inserts a doc with vector value to the graph- Specified by:
addGraphNode
in interfaceHnswBuilder
- Throws:
IOException
-
setInfoStream
Description copied from interface:HnswBuilder
Set info-stream to output debugging information- Specified by:
setInfoStream
in interfaceHnswBuilder
-
getGraph
- Specified by:
getGraph
in interfaceHnswBuilder
-