Package org.apache.lucene.util.hnsw

# 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`

## Field Summary

### Fields inherited from class org.apache.lucene.util.hnsw.IncrementalHnswGraphMerger

`beamWidth, fieldInfo, initDocMap, initGraphSize, initReader, M, scorerSupplier`

## Constructor Summary

Constructors
Constructor
Description
`ConcurrentHnswMerger(FieldInfo fieldInfo, RandomVectorScorerSupplier scorerSupplier, int M, int beamWidth, TaskExecutor taskExecutor, int numWorker)`

## Method Summary

Modifier and Type
Method
Description
`protected HnswBuilder`
`createBuilder(KnnVectorValues mergedVectorValues, int maxOrd)`
Builds a new HnswGraphBuilder using the biggest graph from the merge state as a starting point.

### Methods inherited from class org.apache.lucene.util.hnsw.IncrementalHnswGraphMerger

`addReader, getNewOrdMapping, merge`

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

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

## 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(KnnVectorValues mergedVectorValues, 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:
  `mergedVectorValues` - vector values 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