Package org.apache.lucene.codecs

## Class KnnVectorsWriter

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

- All Implemented Interfaces:
    `Closeable`, `AutoCloseable`, `Accountable`
  Direct Known Subclasses:
    `BufferingKnnVectorsWriter`, `Lucene99HnswVectorsWriter`

      public abstract class KnnVectorsWriter
      extends Object
      implements Accountable, Closeable

  Writes vectors to an index.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `KnnVectorsWriter.MergedVectorValues` | View over multiple vector values supporting iterator-style access via DocIdMerger.

  - ### Field Summary

    - ### Fields inherited from interface org.apache.lucene.util.Accountable

      `NULL_ACCOUNTABLE`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `KnnVectorsWriter()` | Sole constructor

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract KnnFieldVectorsWriter<?>` | `addField​(FieldInfo fieldInfo)` | Add new field for indexing
    `abstract void` | `finish()` | Called once at the end before close
    `abstract void` | `flush​(int maxDoc, Sorter.DocMap sortMap)` | Flush all buffered data on disk *
    `void` | `merge​(MergeState mergeState)` | Merges the segment vectors for all fields.
    `void` | `mergeOneField​(FieldInfo fieldInfo, MergeState mergeState)` | Write field for merging

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

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

    - ### Methods inherited from interface org.apache.lucene.util.Accountable

      `getChildResources, ramBytesUsed`

    - ### Methods inherited from interface java.io.Closeable

      `close`

- - ### Constructor Detail

    - #### KnnVectorsWriter

          protected KnnVectorsWriter()

      Sole constructor

  - ### Method Detail

    - #### addField

          public abstract KnnFieldVectorsWriter<?> addField​(FieldInfo fieldInfo)
                                                     throws IOException

      Add new field for indexing
      Throws:
        `IOException`

    - #### flush

          public abstract void flush​(int maxDoc,
                                     Sorter.DocMap sortMap)
                              throws IOException

      Flush all buffered data on disk *
      Throws:
        `IOException`

    - #### mergeOneField

          public void mergeOneField​(FieldInfo fieldInfo,
                                    MergeState mergeState)
                             throws IOException

      Write field for merging
      Throws:
        `IOException`

    - #### finish

          public abstract void finish()
                               throws IOException

      Called once at the end before close
      Throws:
        `IOException`

    - #### merge

          public final void merge​(MergeState mergeState)
                           throws IOException

      Merges the segment vectors for all fields. This default implementation delegates to `mergeOneField(org.apache.lucene.index.FieldInfo, org.apache.lucene.index.MergeState)`, passing a `KnnVectorsReader` that combines the vector values and ignores deleted documents.
      Throws:
        `IOException`