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`