Package org.apache.lucene.codecs.hnsw

# Class FlatVectorsWriter

java.lang.Object
org.apache.lucene.codecs.KnnVectorsWriter
org.apache.lucene.codecs.hnsw.FlatVectorsWriter

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

Direct Known Subclasses:
  `Lucene99FlatVectorsWriter`, `Lucene99ScalarQuantizedVectorsWriter`

public abstract class FlatVectorsWriter extends KnnVectorsWriter
Vectors' writer for a field that allows additional indexing logic to be implemented by the caller

WARNING: This API is experimental and might change in incompatible ways in the next release.

## Nested Class Summary

## Nested classes/interfaces inherited from class org.apache.lucene.codecs.KnnVectorsWriter

`KnnVectorsWriter.MergedVectorValues`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final FlatVectorsScorer`
`vectorsScorer`
Scorer for flat vectors

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

`NULL_ACCOUNTABLE`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`FlatVectorsWriter(FlatVectorsScorer vectorsScorer)`
Sole constructor

## Method Summary

Modifier and Type
Method
Description
`abstract FlatFieldVectorsWriter<?>`
`addField(FieldInfo fieldInfo)`
Add a new field for indexing
`FlatVectorsScorer`
`getFlatVectorScorer()`
`abstract CloseableRandomVectorScorerSupplier`
`mergeOneFieldToIndex(FieldInfo fieldInfo, MergeState mergeState)`
Write the field for merging, providing a scorer over the newly merged flat vectors.

### Methods inherited from class org.apache.lucene.codecs.KnnVectorsWriter

`finish, flush, mapOldOrdToNewOrd, merge, mergeOneField`

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

## Field Details

### vectorsScorer

protected final FlatVectorsScorer vectorsScorer
Scorer for flat vectors

## Constructor Details

### FlatVectorsWriter

protected FlatVectorsWriter(FlatVectorsScorer vectorsScorer)
Sole constructor

## Method Details

### getFlatVectorScorer

public FlatVectorsScorer getFlatVectorScorer()

Returns:
  the `FlatVectorsScorer` for this reader.

### addField

public abstract FlatFieldVectorsWriter<?> addField(FieldInfo fieldInfo) throws IOException
Add a new field for indexing

Specified by:
  `addField` in class `KnnVectorsWriter`
Parameters:
  `fieldInfo` - fieldInfo of the field to add
Returns:
  a writer for the field
Throws:
  `IOException` - if an I/O error occurs when adding the field

### mergeOneFieldToIndex

public abstract CloseableRandomVectorScorerSupplier mergeOneFieldToIndex(FieldInfo fieldInfo, MergeState mergeState) throws IOException
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.

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