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

    All Methods Instance Methods Concrete Methods
    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 Detail

    - #### NAME

          public static final String NAME

      See Also:
        Constant Field Values

  - ### Constructor Detail

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

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

      Overrides:
        `getMaxDimensions` in class `KnnVectorsFormat`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`