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 final FixedBitSet`
`docsSeen`
`protected final FieldInfo`
`fieldInfo`
`protected long`
`firstBlockStartFP`
`protected final 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

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 Details

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

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

### 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()