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, frozen, hnsw, HNSW_COMPONENT, hnswLock, infoStream, randSeed, scorerSupplier`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `InitializedHnswGraphBuilder(RandomVectorScorerSupplier scorerSupplier, int M, int beamWidth, long seed, OnHeapHnswGraph initializedGraph, BitSet initializedNodes)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addGraphNode(int node)`
  Inserts a doc with vector value to the graph
  `void`
  `addGraphNode(int node, UpdateableRandomVectorScorer scorer)`
  `static 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

  `addGraphNodeWithEps, addVectors, build, create, create, getCompletedGraph, getGraph, setInfoStream`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### InitializedHnswGraphBuilder

    public InitializedHnswGraphBuilder(RandomVectorScorerSupplier scorerSupplier, int M, int beamWidth, long seed, OnHeapHnswGraph initializedGraph, BitSet initializedNodes) throws IOException
    Throws:
      `IOException`

- ## Method Details

  - ### 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 vectors
      `M` - the number of connections to keep per node
      `beamWidth` - the number of nodes to explore in the search
      `seed` - the seed for the random number generator
      `initializerGraph` - the graph to initialize the new graph builder
      `newOrdMap` - a mapping from the old node ordinal to the new node ordinal
      `initializedNodes` - a bitset of nodes that are already initialized in the initializerGraph
      `totalNumberOfVectors` - 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, UpdateableRandomVectorScorer scorer) throws IOException
    Overrides:
      `addGraphNode` in class `HnswGraphBuilder`
    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 interface `HnswBuilder`
    Overrides:
      `addGraphNode` in class `HnswGraphBuilder`
    Throws:
      `IOException`