Package org.apache.lucene.codecs.lucene95

# Class OrdToDocDISIReaderConfiguration

java.lang.Object
org.apache.lucene.codecs.lucene95.OrdToDocDISIReaderConfiguration

public class OrdToDocDISIReaderConfiguration extends Object
Configuration for `DirectMonotonicReader` and `IndexedDISI` for reading sparse vectors. The format in the static writing methods adheres to the Lucene95HnswVectorsFormat

## Method Summary

Modifier and Type
Method
Description
`static OrdToDocDISIReaderConfiguration`
`fromStoredMeta(IndexInput inputMeta, int size)`
Reads in the necessary fields stored in the outputMeta to configure `DirectMonotonicReader` and `IndexedDISI`.
`DirectMonotonicReader`
`getDirectMonotonicReader(IndexInput dataIn)`
`IndexedDISI`
`getIndexedDISI(IndexInput dataIn)`
`boolean`
`isDense()`
`boolean`
`isEmpty()`
`static void`
`writeStoredMeta(int directMonotonicBlockShift, IndexOutput outputMeta, IndexOutput vectorData, int count, int maxDoc, DocsWithFieldSet docsWithField)`
Writes out the docsWithField and ordToDoc mapping to the outputMeta and vectorData respectively.

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

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

## Method Details

### writeStoredMeta

public static void writeStoredMeta(int directMonotonicBlockShift, IndexOutput outputMeta, IndexOutput vectorData, int count, int maxDoc, DocsWithFieldSet docsWithField) throws IOException
Writes out the docsWithField and ordToDoc mapping to the outputMeta and vectorData respectively. This is in adherence to the Lucene95HnswVectorsFormat.

Within outputMeta the format is as follows:

- [int8] if equals to -2, empty - no vector values. If equals to -1, dense – all documents have values for a field. If equals to 0, sparse – some documents missing values.
- DocIds were encoded by `IndexedDISI.writeBitSet(DocIdSetIterator, IndexOutput, byte)`
- OrdToDoc was encoded by `DirectMonotonicWriter`, note that only in sparse case

Within the vectorData the format is as follows:

- DocIds encoded by `IndexedDISI.writeBitSet(DocIdSetIterator, IndexOutput, byte)`, note that only in sparse case
- OrdToDoc was encoded by `DirectMonotonicWriter`, note that only in sparse case

Parameters:
  `outputMeta` - the outputMeta
  `vectorData` - the vectorData
  `count` - the count of docs with vectors
  `maxDoc` - the maxDoc for the index
  `docsWithField` - the docs contaiting a vector field
Throws:
  `IOException` - thrown when writing data fails to either output

### fromStoredMeta

public static OrdToDocDISIReaderConfiguration fromStoredMeta(IndexInput inputMeta, int size) throws IOException
Reads in the necessary fields stored in the outputMeta to configure `DirectMonotonicReader` and `IndexedDISI`.

Parameters:
  `inputMeta` - the inputMeta, previously written to via `writeStoredMeta(int, IndexOutput, IndexOutput, int, int, DocsWithFieldSet)`
  `size` - The number of vectors
Returns:
  the configuration required to read sparse vectors
Throws:
  `IOException` - thrown when reading data fails

### getIndexedDISI

public IndexedDISI getIndexedDISI(IndexInput dataIn) throws IOException

Parameters:
  `dataIn` - the dataIn
Returns:
  the IndexedDISI for sparse values
Throws:
  `IOException` - thrown when reading data fails

### getDirectMonotonicReader

public DirectMonotonicReader getDirectMonotonicReader(IndexInput dataIn) throws IOException

Parameters:
  `dataIn` - the dataIn
Returns:
  the DirectMonotonicReader for sparse values
Throws:
  `IOException` - thrown when reading data fails

### isEmpty

public boolean isEmpty()

Returns:
  If true, the field is empty, no vector values. If false, the field is either dense or sparse.

### isDense

public boolean isDense()

Returns:
  If true, the field is dense, all documents have values for a field. If false, the field is sparse, some documents missing values.