Class ConcurrentHnswMerger

java.lang.Object
org.apache.lucene.util.hnsw.IncrementalHnswGraphMerger
org.apache.lucene.util.hnsw.ConcurrentHnswMerger
All Implemented Interfaces:
HnswGraphMerger

public class ConcurrentHnswMerger extends IncrementalHnswGraphMerger
This merger merges graph in a concurrent manner, by using HnswConcurrentMergeBuilder
  • Constructor Details

    • ConcurrentHnswMerger

      public ConcurrentHnswMerger(FieldInfo fieldInfo, RandomVectorScorerSupplier scorerSupplier, int M, int beamWidth, TaskExecutor taskExecutor, int numWorker)
      Parameters:
      fieldInfo - FieldInfo for the field being merged
  • Method Details

    • createBuilder

      protected HnswBuilder createBuilder(DocIdSetIterator mergedVectorIterator, int maxOrd) throws IOException
      Description copied from class: IncrementalHnswGraphMerger
      Builds a new HnswGraphBuilder using the biggest graph from the merge state as a starting point. If no valid readers were added to the merge state, a new graph is created.
      Overrides:
      createBuilder in class IncrementalHnswGraphMerger
      Parameters:
      mergedVectorIterator - iterator over the vectors in the merged segment
      maxOrd - max num of vectors that will be merged into the graph
      Returns:
      HnswGraphBuilder
      Throws:
      IOException - If an error occurs while reading from the merge state