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`, `FlatVectorsWriter`, `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 final 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

  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 *
  `static void`
  `mapOldOrdToNewOrd(DocsWithFieldSet oldDocIds, Sorter.DocMap sortMap, int[] old2NewOrd, int[] new2OldOrd, DocsWithFieldSet newDocsWithField)`
  Given old doc ids and an id mapping, maps old ordinal to new ordinal.
  `final 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 Details

  - ### KnnVectorsWriter

    protected KnnVectorsWriter()
    Sole constructor

- ## Method Details

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

  - ### mapOldOrdToNewOrd

    public static void mapOldOrdToNewOrd(DocsWithFieldSet oldDocIds, Sorter.DocMap sortMap, int[] old2NewOrd, int[] new2OldOrd, DocsWithFieldSet newDocsWithField) throws IOException
    Given old doc ids and an id mapping, maps old ordinal to new ordinal. Note: this method return nothing and output are written to parameters
    Parameters:
      `oldDocIds` - the old or current document ordinals. Must not be null.
      `sortMap` - the document sorting map for how to make the new ordinals. Must not be null.
      `old2NewOrd` - int[] maps from old ord to new ord
      `new2OldOrd` - int[] maps from new ord to old ord
      `newDocsWithField` - set of new doc ids which has the value
    Throws:
      `IOException`