Package org.apache.lucene.util.hnsw
Class InitializedHnswGraphBuilder
- java.lang.Object
-
- org.apache.lucene.util.hnsw.HnswGraphBuilder
-
- org.apache.lucene.util.hnsw.InitializedHnswGraphBuilder
-
- All Implemented Interfaces:
HnswBuilder
public final class InitializedHnswGraphBuilder extends HnswGraphBuilder
This creates a graph builder that is initialized with the provided HnswGraph. This is useful for merging HnswGraphs from multiple segments.- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.lucene.util.hnsw.HnswGraphBuilder
HnswGraphBuilder.GraphBuilderKnnCollector
-
-
Field Summary
-
Fields inherited from class org.apache.lucene.util.hnsw.HnswGraphBuilder
DEFAULT_BEAM_WIDTH, DEFAULT_MAX_CONN, hnsw, HNSW_COMPONENT, randSeed
-
-
Constructor Summary
Constructors Constructor Description InitializedHnswGraphBuilder(RandomVectorScorerSupplier scorerSupplier, int M, int beamWidth, long seed, OnHeapHnswGraph initializedGraph, BitSet initializedNodes)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addGraphNode(int node)
Inserts a doc with vector value to the graphstatic InitializedHnswGraphBuilder
fromGraph(RandomVectorScorerSupplier scorerSupplier, int M, int beamWidth, long seed, HnswGraph initializerGraph, int[] newOrdMap, BitSet initializedNodes, int totalNumberOfVectors)
Create a new HnswGraphBuilder that is initialized with the provided HnswGraph.static OnHeapHnswGraph
initGraph(int M, HnswGraph initializerGraph, int[] newOrdMap, int totalNumberOfVectors)
-
Methods inherited from class org.apache.lucene.util.hnsw.HnswGraphBuilder
addVectors, build, create, create, getGraph, setInfoStream
-
-
-
-
Constructor Detail
-
InitializedHnswGraphBuilder
public InitializedHnswGraphBuilder(RandomVectorScorerSupplier scorerSupplier, int M, int beamWidth, long seed, OnHeapHnswGraph initializedGraph, BitSet initializedNodes) throws IOException
- Throws:
IOException
-
-
Method Detail
-
fromGraph
public static InitializedHnswGraphBuilder fromGraph(RandomVectorScorerSupplier scorerSupplier, int M, int beamWidth, long seed, HnswGraph initializerGraph, int[] newOrdMap, BitSet initializedNodes, int totalNumberOfVectors) throws IOException
Create a new HnswGraphBuilder that is initialized with the provided HnswGraph.- Parameters:
scorerSupplier
- the scorer to use for vectorsM
- the number of connections to keep per nodebeamWidth
- the number of nodes to explore in the searchseed
- the seed for the random number generatorinitializerGraph
- the graph to initialize the new graph buildernewOrdMap
- a mapping from the old node ordinal to the new node ordinalinitializedNodes
- a bitset of nodes that are already initialized in the initializerGraphtotalNumberOfVectors
- the total number of vectors in the new graph, this should include all vectors expected to be added to the graph in the future- Returns:
- a new HnswGraphBuilder that is initialized with the provided HnswGraph
- Throws:
IOException
- when reading the graph fails
-
initGraph
public static OnHeapHnswGraph initGraph(int M, HnswGraph initializerGraph, int[] newOrdMap, int totalNumberOfVectors) throws IOException
- Throws:
IOException
-
addGraphNode
public void addGraphNode(int node) throws IOException
Description copied from interface:HnswBuilder
Inserts a doc with vector value to the graph- Specified by:
addGraphNode
in interfaceHnswBuilder
- Overrides:
addGraphNode
in classHnswGraphBuilder
- Throws:
IOException
-
-