Lucene99SegmentInfoFormat (Lucene 10.5.0 core API)
Description: declaration: package: org.apache.lucene.codecs.lucene99, class: Lucene99SegmentInfoFormat

Package org.apache.lucene.codecs.lucene99

# Class Lucene99SegmentInfoFormat

java.lang.Object
org.apache.lucene.codecs.SegmentInfoFormat
org.apache.lucene.codecs.lucene99.Lucene99SegmentInfoFormat

public class Lucene99SegmentInfoFormat extends SegmentInfoFormat
Lucene 9.9 Segment info format.

Files:

- `.si`: Header, SegVersion, SegSize, IsCompoundFile, Diagnostics, Files, Attributes, IndexSort, Footer

Data types:

- Header --> `IndexHeader`
- SegSize --> `Int32`
- SegVersion --> `String`
- SegMinVersion --> `String`
- Files --> `Set<String>`
- Diagnostics,Attributes --> `Map<String,String>`
- IsCompoundFile --> `Int8`
- HasBlocks --> `Int8`
- IndexSort --> `Int32` count, followed by `count` SortField
- SortField --> `String` sort class, followed by a per-sort bytestream (see `SortFieldProvider.readSortField(DataInput)`)
- Footer --> `CodecFooter`

Field Descriptions:

- SegVersion is the code version that created the segment.
- SegMinVersion is the minimum code version that contributed documents to the segment.
- SegSize is the number of documents contained in the segment index.
- IsCompoundFile records whether the segment is written as a compound file or not. If this is -1, the segment is not a compound file. If it is 1, the segment is a compound file.
- HasBlocks records whether the segment contains documents written as a block and guarantees consecutive document ids for all documents in the block
- The Diagnostics Map is privately written by `IndexWriter`, as a debugging aid, for each segment it creates. It includes metadata like the current Lucene version, OS, Java version, why the segment was created (merge, flush, addIndexes), etc.
- Files is a list of files referred to by this segment.

See Also:
  - `SegmentInfos`
WARNING: This API is experimental and might change in incompatible ways in the next release.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `SI_EXTENSION`
  File extension used to store `SegmentInfo`.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Lucene99SegmentInfoFormat()`
  Sole constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `SegmentInfo`
  `read(Directory dir, String segment, byte[] segmentID, IOContext context)`
  Read `SegmentInfo` data from a directory.
  `void`
  `write(Directory dir, SegmentInfo si, IOContext ioContext)`
  Write `SegmentInfo` data.

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

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

- ## Field Details

  - ### SI_EXTENSION

    public static final String SI_EXTENSION
    File extension used to store `SegmentInfo`.
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### Lucene99SegmentInfoFormat

    public Lucene99SegmentInfoFormat()
    Sole constructor.

- ## Method Details

  - ### read

    public SegmentInfo read(Directory dir, String segment, byte[] segmentID, IOContext context) throws IOException
    Description copied from class: `SegmentInfoFormat`
    Read `SegmentInfo` data from a directory.
    Specified by:
      `read` in class `SegmentInfoFormat`
    Parameters:
      `dir` - directory to read from
      `segment` - name of the segment to read
      `segmentID` - expected identifier for the segment
    Returns:
      infos instance to be populated with data
    Throws:
      `IOException` - If an I/O error occurs

  - ### write

    public void write(Directory dir, SegmentInfo si, IOContext ioContext) throws IOException
    Description copied from class: `SegmentInfoFormat`
    Write `SegmentInfo` data. The codec must add its SegmentInfo filename(s) to `info` before doing i/o.
    Specified by:
      `write` in class `SegmentInfoFormat`
    Throws:
      `IOException` - If an I/O error occurs