org.apache.lucene.codecs.lucene50

## Class Lucene50FieldInfosFormat

- java.lang.Object
- - org.apache.lucene.codecs.FieldInfosFormat
  - - org.apache.lucene.codecs.lucene50.Lucene50FieldInfosFormat

    public final class Lucene50FieldInfosFormat
    extends FieldInfosFormat

Lucene 5.0 Field Infos format.

Field names are stored in the field info file, with suffix `.fnm`.

FieldInfos (.fnm) --> Header,FieldsCount, <FieldName,FieldNumber, FieldBits,DocValuesBits,DocValuesGen,Attributes> FieldsCount,Footer

Data types:

- Header --> `IndexHeader`
- FieldsCount --> `VInt`
- FieldName --> `String`
- FieldBits, IndexOptions, DocValuesBits --> `Byte`
- FieldNumber --> `VInt`
- Attributes --> `Map<String,String>`
- DocValuesGen --> `Int64`
- Footer --> `CodecFooter`

Field Descriptions:

- FieldsCount: the number of fields in this file.
- FieldName: name of the field as a UTF-8 String.
- FieldNumber: the field's number. Note that unlike previous versions of Lucene, the fields are not numbered implicitly by their order in the file, instead explicitly.
- FieldBits: a byte containing field options.
  - The low order bit (0x1) is one for fields that have term vectors stored, and zero for fields without term vectors.
  - If the second lowest order-bit is set (0x2), norms are omitted for the indexed field.
  - If the third lowest-order bit is set (0x4), payloads are stored for the indexed field.
- IndexOptions: a byte containing index options.
  - 0: not indexed
  - 1: indexed as DOCS_ONLY
  - 2: indexed as DOCS_AND_FREQS
  - 3: indexed as DOCS_AND_FREQS_AND_POSITIONS
  - 4: indexed as DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS
- DocValuesBits: a byte containing per-document value types. The type recorded as two four-bit integers, with the high-order bits representing `norms` options, and the low-order bits representing `DocValues` options. Each four-bit integer can be decoded as such:
  - 0: no DocValues for this field.
  - 1: NumericDocValues. (`DocValuesType.NUMERIC`)
  - 2: BinaryDocValues. (`DocValuesType#BINARY`)
  - 3: SortedDocValues. (`DocValuesType#SORTED`)
- DocValuesGen is the generation count of the field's DocValues. If this is -1, there are no DocValues updates to that field. Anything above zero means there are updates stored by `DocValuesFormat`.
- Attributes: a key-value map of codec-private attributes.

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

### Constructor Summary

Constructors
Constructor and Description
`Lucene50FieldInfosFormat()` Sole constructor.

### Method Summary

All Methods Instance Methods Concrete Methods
`FieldInfos` `read(Directory directory, SegmentInfo segmentInfo, String segmentSuffix, IOContext context)` Read the `FieldInfos` previously written with `FieldInfosFormat.write(org.apache.lucene.store.Directory, org.apache.lucene.index.SegmentInfo, java.lang.String, org.apache.lucene.index.FieldInfos, org.apache.lucene.store.IOContext)`.
`void` `write(Directory directory, SegmentInfo segmentInfo, String segmentSuffix, FieldInfos infos, IOContext context)` Writes the provided `FieldInfos` to the directory.

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

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

### Constructor Detail

#### Lucene50FieldInfosFormat

    public Lucene50FieldInfosFormat()

Sole constructor.

### Method Detail

#### read

    public FieldInfos read(Directory directory,
                           SegmentInfo segmentInfo,
                           String segmentSuffix,
                           IOContext context)
                    throws IOException

Description copied from class: `FieldInfosFormat`
Read the `FieldInfos` previously written with `FieldInfosFormat.write(org.apache.lucene.store.Directory, org.apache.lucene.index.SegmentInfo, java.lang.String, org.apache.lucene.index.FieldInfos, org.apache.lucene.store.IOContext)`.

Specified by:
  `read` in class `FieldInfosFormat`
Throws:
  `IOException`

#### write

    public void write(Directory directory,
                      SegmentInfo segmentInfo,
                      String segmentSuffix,
                      FieldInfos infos,
                      IOContext context)
               throws IOException

Description copied from class: `FieldInfosFormat`
Writes the provided `FieldInfos` to the directory.

Specified by:
  `write` in class `FieldInfosFormat`
Throws:
  `IOException`