Package org.apache.lucene.codecs.lucene99

## Class Lucene99ScalarQuantizedVectorsWriter

- java.lang.Object
- - org.apache.lucene.codecs.FlatVectorsWriter
  - - org.apache.lucene.codecs.lucene99.Lucene99ScalarQuantizedVectorsWriter

- All Implemented Interfaces:
    `Closeable`, `AutoCloseable`, `Accountable`

      public final class Lucene99ScalarQuantizedVectorsWriter
      extends FlatVectorsWriter

  Writes quantized vector values and metadata to index segments.
  WARNING: This API is experimental and might change in incompatible ways in the next release.

- - ### Field Summary

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

      `NULL_ACCOUNTABLE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Lucene99ScalarQuantizedVectorsWriter​(SegmentWriteState state, Float confidenceInterval, FlatVectorsWriter rawVectorDelegate)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `FlatFieldVectorsWriter<?>` | `addField​(FieldInfo fieldInfo, KnnFieldVectorsWriter<?> indexWriter)` | Add a new field for indexing, allowing the user to provide a writer that the flat vectors writer can delegate to if additional indexing logic is required.
    `void` | `close()` |
    `void` | `finish()` | Called once at the end before close
    `void` | `flush​(int maxDoc, Sorter.DocMap sortMap)` | Flush all buffered data on disk *
    `static ScalarQuantizer` | `mergeAndRecalculateQuantiles​(MergeState mergeState, FieldInfo fieldInfo, float confidenceInterval)` | Merges the quantiles of the segments and recalculates the quantiles if necessary.
    `void` | `mergeOneField​(FieldInfo fieldInfo, MergeState mergeState)` | Write field for merging
    `CloseableRandomVectorScorerSupplier` | `mergeOneFieldToIndex​(FieldInfo fieldInfo, MergeState mergeState)` | Write the field for merging, providing a scorer over the newly merged flat vectors.
    `long` | `ramBytesUsed()` | Return the memory usage of this object in bytes.
    `static DocsWithFieldSet` | `writeQuantizedVectorData​(IndexOutput output, QuantizedByteVectorValues quantizedByteVectorValues)` | Writes the vector values to the output and returns a set of documents that contains vectors.

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

- - ### Constructor Detail

    - #### Lucene99ScalarQuantizedVectorsWriter

          public Lucene99ScalarQuantizedVectorsWriter​(SegmentWriteState state,
                                                      Float confidenceInterval,
                                                      FlatVectorsWriter rawVectorDelegate)
                                               throws IOException

      Throws:
        `IOException`

  - ### Method Detail

    - #### addField

          public FlatFieldVectorsWriter<?> addField​(FieldInfo fieldInfo,
                                                    KnnFieldVectorsWriter<?> indexWriter)
                                             throws IOException

      Description copied from class: `FlatVectorsWriter`
      Add a new field for indexing, allowing the user to provide a writer that the flat vectors writer can delegate to if additional indexing logic is required.
      Specified by:
        `addField` in class `FlatVectorsWriter`
      Parameters:
        `fieldInfo` - fieldInfo of the field to add
        `indexWriter` - the writer to delegate to, can be null
      Returns:
        a writer for the field
      Throws:
        `IOException` - if an I/O error occurs when adding the field

    - #### mergeOneField

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

      Description copied from class: `FlatVectorsWriter`
      Write field for merging
      Overrides:
        `mergeOneField` in class `FlatVectorsWriter`
      Throws:
        `IOException`

    - #### mergeOneFieldToIndex

          public CloseableRandomVectorScorerSupplier mergeOneFieldToIndex​(FieldInfo fieldInfo,
                                                                          MergeState mergeState)
                                                                   throws IOException

      Description copied from class: `FlatVectorsWriter`
      Write the field for merging, providing a scorer over the newly merged flat vectors. This way any additional merging logic can be implemented by the user of this class.
      Specified by:
        `mergeOneFieldToIndex` in class `FlatVectorsWriter`
      Parameters:
        `fieldInfo` - fieldInfo of the field to merge
        `mergeState` - mergeState of the segments to merge
      Returns:
        a scorer over the newly merged flat vectors, which should be closed as it holds a temporary file handle to read over the newly merged vectors
      Throws:
        `IOException` - if an I/O error occurs when merging

    - #### flush

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

      Description copied from class: `FlatVectorsWriter`
      Flush all buffered data on disk *
      Specified by:
        `flush` in class `FlatVectorsWriter`
      Throws:
        `IOException`

    - #### finish

          public void finish()
                      throws IOException

      Description copied from class: `FlatVectorsWriter`
      Called once at the end before close
      Specified by:
        `finish` in class `FlatVectorsWriter`
      Throws:
        `IOException`

    - #### ramBytesUsed

          public long ramBytesUsed()

      Description copied from interface: `Accountable`
      Return the memory usage of this object in bytes. Negative values are illegal.

    - #### mergeAndRecalculateQuantiles

          public static ScalarQuantizer mergeAndRecalculateQuantiles​(MergeState mergeState,
                                                                     FieldInfo fieldInfo,
                                                                     float confidenceInterval)
                                                              throws IOException

      Merges the quantiles of the segments and recalculates the quantiles if necessary.
      Parameters:
        `mergeState` - The merge state
        `fieldInfo` - The field info
        `confidenceInterval` - The confidence interval
      Returns:
        The merged quantiles
      Throws:
        `IOException` - If there is a low-level I/O error

    - #### writeQuantizedVectorData

          public static DocsWithFieldSet writeQuantizedVectorData​(IndexOutput output,
                                                                  QuantizedByteVectorValues quantizedByteVectorValues)
                                                           throws IOException

      Writes the vector values to the output and returns a set of documents that contains vectors.
      Throws:
        `IOException`

    - #### close

          public void close()
                     throws IOException

      Throws:
        `IOException`