Package org.apache.lucene.codecs.uniformsplit.sharedterms

# Class STMergingBlockReader

java.lang.Object
org.apache.lucene.index.TermsEnum
org.apache.lucene.index.BaseTermsEnum
org.apache.lucene.codecs.uniformsplit.BlockReader
org.apache.lucene.codecs.uniformsplit.sharedterms.STBlockReader
org.apache.lucene.codecs.uniformsplit.sharedterms.STMergingBlockReader

All Implemented Interfaces:
  `Accountable`, `BytesRefIterator`

public class STMergingBlockReader extends STBlockReader
`TermsEnum` used when merging segments, to enumerate the terms of an input segment and get all the fields `TermState`s of each term.

It only supports calls to `next()` and no seek method.

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

## Nested Class Summary

## Nested classes/interfaces inherited from class org.apache.lucene.index.TermsEnum

`TermsEnum.SeekStatus`

## Field Summary

### Fields inherited from class org.apache.lucene.codecs.uniformsplit.sharedterms.STBlockReader

`fieldInfos`

### Fields inherited from class org.apache.lucene.codecs.uniformsplit.BlockReader

`blockDecoder, blockFirstLineStart, blockHeader, blockHeaderReader, blockInput, blockLine, blockLineReader, blockReadBuffer, blockStartFP, dictionaryBrowser, dictionaryBrowserSupplier, fieldMetadata, forcedTerm, lineIndexInBlock, postingsReader, scratchBlockBytes, scratchBlockLine, scratchTermState, termState, termStateForced, termStateSerializer, termStatesReadBuffer`

### Fields inherited from class org.apache.lucene.index.TermsEnum

`EMPTY`

### Fields inherited from interface org.apache.lucene.util.Accountable

`NULL_ACCOUNTABLE`

## Constructor Summary

Constructors
Constructor
Description
`STMergingBlockReader(IndexDictionary.BrowserSupplier dictionaryBrowserSupplier, IndexInput blockInput, PostingsReaderBase postingsReader, FieldMetadata fieldMetadata, BlockDecoder blockDecoder, FieldInfos fieldInfos)`

## Method Summary

Modifier and Type
Method
Description
`BytesRef`
`next()`
`PostingsEnum`
`postings(String fieldName, BlockTermState termState, PostingsEnum reuse, int flags)`
Creates a new `PostingsEnum` for the provided field and `BlockTermState`.
`void`
`readFieldTermStatesMap(Map<String,BlockTermState> fieldTermStatesMap)`
Reads all the fields `TermState`s of the current term and put them in the provided map.
`protected BlockTermState`
`readTermStateIfNotRead()`
Reads the `BlockTermState` if it is not already set.
`TermsEnum.SeekStatus`
`seekCeil(BytesRef searchedTerm)`
`void`
`seekExact(long ord)`
Not supported.
`boolean`
`seekExact(BytesRef searchedTerm)`
`void`
`seekExact(BytesRef term, TermState state)`
Positions this `BlockReader` without re-seeking the term dictionary.

### Methods inherited from class org.apache.lucene.codecs.uniformsplit.sharedterms.STBlockReader

`createBlockLineSerializer, isBeyondLastTerm, nextTerm, readTermState`

### Methods inherited from class org.apache.lucene.codecs.uniformsplit.BlockReader

`clearTermState, compareToMiddleAndJump, createBlockHeaderSerializer, createDeltaBaseTermStateSerializer, decodeBlockBytesIfNeeded, docFreq, getOrCreateDictionaryBrowser, impacts, initializeBlockReadLazily, initializeHeader, isCurrentTerm, newCorruptIndexException, ord, postings, ramBytesUsed, readHeader, readLineInBlock, seekInBlock, seekInBlock, term, termState, totalTermFreq`

### Methods inherited from class org.apache.lucene.index.BaseTermsEnum

`attributes, prepareSeekExact`

### Methods inherited from class org.apache.lucene.index.TermsEnum

`postings`

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

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

### Methods inherited from interface org.apache.lucene.util.Accountable

`getChildResources`

## Constructor Details

### STMergingBlockReader

public STMergingBlockReader(IndexDictionary.BrowserSupplier dictionaryBrowserSupplier, IndexInput blockInput, PostingsReaderBase postingsReader, FieldMetadata fieldMetadata, BlockDecoder blockDecoder, FieldInfos fieldInfos) throws IOException

Throws:
  `IOException`

## Method Details

### seekCeil

public TermsEnum.SeekStatus seekCeil(BytesRef searchedTerm)

Overrides:
  `seekCeil` in class `STBlockReader`

### seekExact

public boolean seekExact(BytesRef searchedTerm)

Overrides:
  `seekExact` in class `STBlockReader`

### seekExact

public void seekExact(BytesRef term, TermState state)
Description copied from class: `BlockReader`
Positions this `BlockReader` without re-seeking the term dictionary.

The block containing the term is not read by this method. It will be read lazily only if needed, for example if `BlockReader.next()` is called. Calling `BlockReader.postings(org.apache.lucene.index.PostingsEnum, int)` after this method does require the block to be read.

Overrides:
  `seekExact` in class `BlockReader`

### seekExact

public void seekExact(long ord)
Description copied from class: `BlockReader`
Not supported.

Overrides:
  `seekExact` in class `BlockReader`

### readTermStateIfNotRead

protected BlockTermState readTermStateIfNotRead()
Description copied from class: `BlockReader`
Reads the `BlockTermState` if it is not already set. Sets `BlockReader.termState`.

Overrides:
  `readTermStateIfNotRead` in class `BlockReader`

### next

public BytesRef next() throws IOException

Specified by:
  `next` in interface `BytesRefIterator`
Overrides:
  `next` in class `STBlockReader`
Throws:
  `IOException`

### postings

public PostingsEnum postings(String fieldName, BlockTermState termState, PostingsEnum reuse, int flags) throws IOException
Creates a new `PostingsEnum` for the provided field and `BlockTermState`.

Parameters:
  `reuse` - Previous `PostingsEnum` to reuse; or null to create a new one.
  `flags` - Postings flags.
Throws:
  `IOException`

### readFieldTermStatesMap

public void readFieldTermStatesMap(Map<String,BlockTermState> fieldTermStatesMap) throws IOException
Reads all the fields `TermState`s of the current term and put them in the provided map. Clears the map first, before putting `TermState`s.

Throws:
  `IOException`