Package org.apache.lucene.codecs.uniformsplit

## Class FieldMetadata

- java.lang.Object
- - org.apache.lucene.codecs.uniformsplit.FieldMetadata

-     public class FieldMetadata
      extends Object

  Metadata and stats for one field in the index.

  There is only one instance of `FieldMetadata` per `FieldInfo`.

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

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `FieldMetadata.Serializer` | Reads/writes field metadata.

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected long` | `dictionaryStartFP` |
    `protected int` | `docCount` |
    `protected FixedBitSet` | `docsSeen` |
    `protected FieldInfo` | `fieldInfo` |
    `protected long` | `firstBlockStartFP` |
    `protected boolean` | `isMutable` |
    `protected long` | `lastBlockStartFP` |
    `protected BytesRef` | `lastTerm` |
    `protected long` | `numTerms` |
    `protected long` | `sumDocFreq` |
    `protected long` | `sumTotalTermFreq` |

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `` | `FieldMetadata​(long dictionaryStartFP, long firstBlockStartFP, long lastBlockStartFP, BytesRef lastTerm)` | Constructs immutable virtual field metadata for reading.
    `` | `FieldMetadata​(FieldInfo fieldInfo, int maxDoc)` | Constructs field metadata for writing.
    `protected` | `FieldMetadata​(FieldInfo fieldInfo, int maxDoc, boolean isMutable)` | Constructs field metadata for reading or writing.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `long` | `getDictionaryStartFP()` |
    `int` | `getDocCount()` |
    `FixedBitSet` | `getDocsSeen()` | Provides the `FixedBitSet` to keep track of the docs seen when calling `PostingsWriterBase.writeTerm(BytesRef, TermsEnum, FixedBitSet, org.apache.lucene.codecs.NormsProducer)`.
    `FieldInfo` | `getFieldInfo()` |
    `long` | `getFirstBlockStartFP()` |
    `long` | `getLastBlockStartFP()` |
    `BytesRef` | `getLastTerm()` |
    `long` | `getNumTerms()` |
    `long` | `getSumDocFreq()` |
    `long` | `getSumTotalTermFreq()` |
    `void` | `setDictionaryStartFP​(long dictionaryStartFP)` | Sets the file pointer to the start of the dictionary of the field.
    `void` | `setFirstBlockStartFP​(long firstBlockStartFP)` | Sets the file pointer to the start of the first block of the field.
    `void` | `setLastBlockStartFP​(long lastBlockStartFP)` | Sets the file pointer after the end of the last block of the field.
    `void` | `setLastTerm​(BytesRef lastTerm)` |
    `void` | `updateStats​(BlockTermState state)` | Updates the field stats with the given `BlockTermState` for the current block line (for one term).

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

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

- - ### Field Detail

    - #### fieldInfo

          protected final FieldInfo fieldInfo

    - #### isMutable

          protected final boolean isMutable

    - #### docsSeen

          protected final FixedBitSet docsSeen

    - #### sumDocFreq

          protected long sumDocFreq

    - #### numTerms

          protected long numTerms

    - #### sumTotalTermFreq

          protected long sumTotalTermFreq

    - #### docCount

          protected int docCount

    - #### dictionaryStartFP

          protected long dictionaryStartFP

    - #### firstBlockStartFP

          protected long firstBlockStartFP

    - #### lastBlockStartFP

          protected long lastBlockStartFP

    - #### lastTerm

          protected BytesRef lastTerm

  - ### Constructor Detail

    - #### FieldMetadata

          public FieldMetadata​(FieldInfo fieldInfo,
                               int maxDoc)

      Constructs field metadata for writing.
      Parameters:
        `maxDoc` - The total number of documents in the segment being written.

    - #### FieldMetadata

          public FieldMetadata​(long dictionaryStartFP,
                               long firstBlockStartFP,
                               long lastBlockStartFP,
                               BytesRef lastTerm)

      Constructs immutable virtual field metadata for reading.

    - #### FieldMetadata

          protected FieldMetadata​(FieldInfo fieldInfo,
                                  int maxDoc,
                                  boolean isMutable)

      Constructs field metadata for reading or writing.
      Parameters:
        `maxDoc` - The total number of documents in the segment being written.
        `isMutable` - Set true if this FieldMetadata is created for writing the index. Set false if it is used for reading the index.

  - ### Method Detail

    - #### updateStats

          public void updateStats​(BlockTermState state)

      Updates the field stats with the given `BlockTermState` for the current block line (for one term).

    - #### getDocsSeen

          public FixedBitSet getDocsSeen()

      Provides the `FixedBitSet` to keep track of the docs seen when calling `PostingsWriterBase.writeTerm(BytesRef, TermsEnum, FixedBitSet, org.apache.lucene.codecs.NormsProducer)`.

      The returned `FixedBitSet` is created once in this `FieldMetadata` constructor.

      Returns:
        The `FixedBitSet` for the docs seen, during segment writing; or null if this `FieldMetadata` is created immutable during segment reading.

    - #### getFieldInfo

          public FieldInfo getFieldInfo()

    - #### getSumDocFreq

          public long getSumDocFreq()

    - #### getNumTerms

          public long getNumTerms()

    - #### getSumTotalTermFreq

          public long getSumTotalTermFreq()

    - #### getDocCount

          public int getDocCount()

    - #### getFirstBlockStartFP

          public long getFirstBlockStartFP()

      Returns:
        The file pointer to the start of the first block of the field.

    - #### setFirstBlockStartFP

          public void setFirstBlockStartFP​(long firstBlockStartFP)

      Sets the file pointer to the start of the first block of the field.

    - #### getLastBlockStartFP

          public long getLastBlockStartFP()

      Returns:
        The start file pointer for the last block of the field.

    - #### setLastBlockStartFP

          public void setLastBlockStartFP​(long lastBlockStartFP)

      Sets the file pointer after the end of the last block of the field.

    - #### getDictionaryStartFP

          public long getDictionaryStartFP()

      Returns:
        The file pointer to the start of the dictionary of the field.

    - #### setDictionaryStartFP

          public void setDictionaryStartFP​(long dictionaryStartFP)

      Sets the file pointer to the start of the dictionary of the field.

    - #### setLastTerm

          public void setLastTerm​(BytesRef lastTerm)

    - #### getLastTerm

          public BytesRef getLastTerm()