Package org.apache.lucene.codecs

## Class KnnVectorsFormat

- java.lang.Object
- - org.apache.lucene.codecs.KnnVectorsFormat

- All Implemented Interfaces:
    `NamedSPILoader.NamedSPI`
  Direct Known Subclasses:
    `Lucene99HnswScalarQuantizedVectorsFormat`, `Lucene99HnswVectorsFormat`, `PerFieldKnnVectorsFormat`

      public abstract class KnnVectorsFormat
      extends Object
      implements NamedSPILoader.NamedSPI

  Encodes/decodes per-document vector and any associated indexing structures required to support nearest-neighbor search

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static int` | `DEFAULT_MAX_DIMENSIONS` | The maximum number of vector dimensions
    `static KnnVectorsFormat` | `EMPTY` | EMPTY throws an exception when written.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `KnnVectorsFormat​(String name)` | Sole constructor

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract KnnVectorsReader` | `fieldsReader​(SegmentReadState state)` | Returns a `KnnVectorsReader` to read the vectors from the index.
    `abstract KnnVectorsWriter` | `fieldsWriter​(SegmentWriteState state)` | Returns a `KnnVectorsWriter` to write the vectors to the index.
    `static KnnVectorsFormat` | `forName​(String name)` | looks up a format by name
    `int` | `getMaxDimensions​(String fieldName)` | Returns the maximum number of vector dimensions supported by this codec for the given field name
    `String` | `getName()` |

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

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

- - ### Field Detail

    - #### DEFAULT_MAX_DIMENSIONS

          public static final int DEFAULT_MAX_DIMENSIONS

      The maximum number of vector dimensions
      See Also:
        Constant Field Values

    - #### EMPTY

          public static final KnnVectorsFormat EMPTY

      EMPTY throws an exception when written. It acts as a sentinel indicating a Codec that does not support vectors.

  - ### Constructor Detail

    - #### KnnVectorsFormat

          protected KnnVectorsFormat​(String name)

      Sole constructor

  - ### Method Detail

    - #### getName

          public String getName()

      Specified by:
        `getName` in interface `NamedSPILoader.NamedSPI`

    - #### forName

          public static KnnVectorsFormat forName​(String name)

      looks up a format by name

    - #### fieldsWriter

          public abstract KnnVectorsWriter fieldsWriter​(SegmentWriteState state)
                                                 throws IOException

      Returns a `KnnVectorsWriter` to write the vectors to the index.
      Throws:
        `IOException`

    - #### fieldsReader

          public abstract KnnVectorsReader fieldsReader​(SegmentReadState state)
                                                 throws IOException

      Returns a `KnnVectorsReader` to read the vectors from the index.
      Throws:
        `IOException`

    - #### getMaxDimensions

          public int getMaxDimensions​(String fieldName)

      Returns the maximum number of vector dimensions supported by this codec for the given field name

      Codecs should override this method to specify the maximum number of dimensions they support.

      Parameters:
        `fieldName` - the field name
      Returns:
        the maximum number of vector dimensions.