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.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final class
private static class
This searcher will obtain the lock and make a copy of neighborArray when seeking the graph such that concurrent modification of the graph will not impact the search -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final int
private InfoStream
private final TaskExecutor
private final HnswConcurrentMergeBuilder.ConcurrentMergeWorker[]
-
Constructor Summary
ConstructorsConstructorDescriptionHnswConcurrentMergeBuilder
(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()
(package private) void
setBatchSize
(int newSize) void
setInfoStream
(InfoStream infoStream) Set info-stream to output debugging information
-
Field Details
-
DEFAULT_BATCH_SIZE
private static final int DEFAULT_BATCH_SIZE- See Also:
-
taskExecutor
-
workers
-
infoStream
-
-
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
-
setBatchSize
void setBatchSize(int newSize)
-