Package org.apache.lucene.util.hnsw
Class HnswConcurrentMergeBuilder
- java.lang.Object
-
- org.apache.lucene.util.hnsw.HnswConcurrentMergeBuilder
-
- All Implemented Interfaces:
HnswBuilder
public class HnswConcurrentMergeBuilder extends Object implements 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
Constructors Constructor Description HnswConcurrentMergeBuilder(TaskExecutor taskExecutor, int numWorker, RandomVectorScorerSupplier scorerSupplier, int M, int beamWidth, OnHeapHnswGraph hnsw, BitSet initializedNodes)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddGraphNode(int node)Inserts a doc with vector value to the graphOnHeapHnswGraphbuild(int maxOrd)Adds all nodes to the graph up to the providedmaxOrd.OnHeapHnswGraphgetCompletedGraph()Once this method is called no further updates to the graph are accepted (addGraphNode will throw IllegalStateException).OnHeapHnswGraphgetGraph()voidsetInfoStream(InfoStream infoStream)Set info-stream to output debugging information
-
-
-
Constructor Detail
-
HnswConcurrentMergeBuilder
public HnswConcurrentMergeBuilder(TaskExecutor taskExecutor, int numWorker, RandomVectorScorerSupplier scorerSupplier, int M, int beamWidth, OnHeapHnswGraph hnsw, BitSet initializedNodes) throws IOException
- Throws:
IOException
-
-
Method Detail
-
build
public OnHeapHnswGraph build(int maxOrd) throws IOException
Description copied from interface:HnswBuilderAdds all nodes to the graph up to the providedmaxOrd.- Specified by:
buildin interfaceHnswBuilder- Parameters:
maxOrd- The maximum ordinal (excluded) of the nodes to be added.- Throws:
IOException
-
addGraphNode
public void addGraphNode(int node) throws IOExceptionDescription copied from interface:HnswBuilderInserts a doc with vector value to the graph- Specified by:
addGraphNodein interfaceHnswBuilder- Throws:
IOException
-
setInfoStream
public void setInfoStream(InfoStream infoStream)
Description copied from interface:HnswBuilderSet info-stream to output debugging information- Specified by:
setInfoStreamin interfaceHnswBuilder
-
getCompletedGraph
public OnHeapHnswGraph getCompletedGraph() throws IOException
Description copied from interface:HnswBuilderOnce this method is called no further updates to the graph are accepted (addGraphNode will throw IllegalStateException). Final modifications to the graph (eg patching up disconnected components, re-ordering node ids for better delta compression) may be triggered, so callers should expect this call to take some time.- Specified by:
getCompletedGraphin interfaceHnswBuilder- Throws:
IOException
-
getGraph
public OnHeapHnswGraph getGraph()
- Specified by:
getGraphin interfaceHnswBuilder
-
-