Package org.apache.lucene.codecs.bitvectors

# Class HnswBitVectorsFormat

java.lang.Object
org.apache.lucene.codecs.KnnVectorsFormat
org.apache.lucene.codecs.bitvectors.HnswBitVectorsFormat

All Implemented Interfaces:
  `NamedSPILoader.NamedSPI`

public final class HnswBitVectorsFormat extends KnnVectorsFormat
Encodes bit vector values into an associated graph connecting the documents having values. The graph is used to power HNSW search. The format consists of two files, and uses `Lucene99FlatVectorsFormat` to store the actual vectors, but with a custom scorer implementation: For details on graph storage and file extensions, see `Lucene99HnswVectorsFormat`.

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

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`NAME`

### Fields inherited from class org.apache.lucene.codecs.KnnVectorsFormat

`DEFAULT_MAX_DIMENSIONS, EMPTY`

## Constructor Summary

Constructors
Constructor
Description
`HnswBitVectorsFormat()`
Constructs a format using default graph construction parameters
`HnswBitVectorsFormat(int maxConn, int beamWidth)`
Constructs a format using the given graph construction parameters.
`HnswBitVectorsFormat(int maxConn, int beamWidth, int numMergeWorkers, ExecutorService mergeExec)`
Constructs a format using the given graph construction parameters and scalar quantization.

## Method Summary

Modifier and Type
Method
Description
`KnnVectorsReader`
`fieldsReader(SegmentReadState state)`
`KnnVectorsWriter`
`fieldsWriter(SegmentWriteState state)`
`int`
`getMaxDimensions(String fieldName)`
`String`
`toString()`

### Methods inherited from class org.apache.lucene.codecs.KnnVectorsFormat

`availableKnnVectorsFormats, forName, getName, reloadKnnVectorsFormat`

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

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

## Field Details

### NAME

public static final String NAME

See Also:
  - Constant Field Values

## Constructor Details

### HnswBitVectorsFormat

public HnswBitVectorsFormat()
Constructs a format using default graph construction parameters

### HnswBitVectorsFormat

public HnswBitVectorsFormat(int maxConn, int beamWidth)
Constructs a format using the given graph construction parameters.

Parameters:
  `maxConn` - the maximum number of connections to a node in the HNSW graph
  `beamWidth` - the size of the queue maintained during graph construction.

### HnswBitVectorsFormat

public HnswBitVectorsFormat(int maxConn, int beamWidth, int numMergeWorkers, ExecutorService mergeExec)
Constructs a format using the given graph construction parameters and scalar quantization.

Parameters:
  `maxConn` - the maximum number of connections to a node in the HNSW graph
  `beamWidth` - the size of the queue maintained during graph construction.
  `numMergeWorkers` - number of workers (threads) that will be used when doing merge. If larger than 1, a non-null `ExecutorService` must be passed as mergeExec
  `mergeExec` - the `ExecutorService` that will be used by ALL vector writers that are generated by this format to do the merge

## Method Details

### fieldsWriter

public KnnVectorsWriter fieldsWriter(SegmentWriteState state) throws IOException

Specified by:
  `fieldsWriter` in class `KnnVectorsFormat`
Throws:
  `IOException`

### fieldsReader

public KnnVectorsReader fieldsReader(SegmentReadState state) throws IOException

Specified by:
  `fieldsReader` in class `KnnVectorsFormat`
Throws:
  `IOException`

### getMaxDimensions

public int getMaxDimensions(String fieldName)

Specified by:
  `getMaxDimensions` in class `KnnVectorsFormat`

### toString

public String toString()

Overrides:
  `toString` in class `Object`