Package org.apache.lucene.util.hnsw

# Interface HnswGraphMerger

All Known Implementing Classes:
  `ConcurrentHnswMerger`, `IncrementalHnswGraphMerger`

public interface HnswGraphMerger
Abstraction of merging multiple graphs into one on-heap graph

WARNING: This API is experimental and might change in incompatible ways in the next release.

## Method Summary

Modifier and Type
Method
Description
`HnswGraphMerger`
`addReader(KnnVectorsReader reader, MergeState.DocMap docMap, Bits liveDocs)`
Adds a reader to the graph merger to record the state
`OnHeapHnswGraph`
`merge(KnnVectorValues mergedVectorValues, InfoStream infoStream, int maxOrd)`
Merge and produce the on heap graph

## Method Details

### addReader

HnswGraphMerger addReader(KnnVectorsReader reader, MergeState.DocMap docMap, Bits liveDocs) throws IOException
Adds a reader to the graph merger to record the state

Parameters:
  `reader` - KnnVectorsReader to add to the merger
  `docMap` - MergeState.DocMap for the reader
  `liveDocs` - Bits representing live docs, can be null
Returns:
  this
Throws:
  `IOException` - If an error occurs while reading from the merge state

### merge

OnHeapHnswGraph merge(KnnVectorValues mergedVectorValues, InfoStream infoStream, int maxOrd) throws IOException
Merge and produce the on heap graph

Parameters:
  `mergedVectorValues` - view of the vectors in the merged segment
  `infoStream` - optional info stream to set to builder
  `maxOrd` - max number of vectors that will be added to the graph
Returns:
  merged graph
Throws:
  `IOException` - during merge