org.apache.lucene.analysis.miscellaneous

## Class LimitTokenCountFilter

- java.lang.Object
- - org.apache.lucene.util.AttributeSource
  - - org.apache.lucene.analysis.TokenStream
    - - org.apache.lucene.analysis.TokenFilter
      - - org.apache.lucene.analysis.miscellaneous.LimitTokenCountFilter

All Implemented Interfaces:
  Closeable, AutoCloseable

    public final class LimitTokenCountFilter
    extends TokenFilter

This TokenFilter limits the number of tokens while indexing. It is a replacement for the maximum field length setting inside `IndexWriter`.

By default, this filter ignores any tokens in the wrapped `TokenStream` once the limit has been reached, which can result in `reset()` being called prior to `incrementToken()` returning `false`. For most `TokenStream` implementations this should be acceptable, and faster then consuming the full stream. If you are wrapping a `TokenStream` which requires that the full stream of tokens be exhausted in order to function properly, use the `consumeAllTokens` option.

### Nested Class Summary

### Nested classes/interfaces inherited from class org.apache.lucene.util.AttributeSource

`AttributeSource.State`

### Field Summary

### Fields inherited from class org.apache.lucene.analysis.TokenFilter

`input`

### Fields inherited from class org.apache.lucene.analysis.TokenStream

`DEFAULT_TOKEN_ATTRIBUTE_FACTORY`

### Constructor Summary

Constructors
Constructor and Description
`LimitTokenCountFilter(TokenStream in, int maxTokenCount)` Build a filter that only accepts tokens up to a maximum number.
`LimitTokenCountFilter(TokenStream in, int maxTokenCount, boolean consumeAllTokens)` Build an filter that limits the maximum number of tokens per field.

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `incrementToken()`
`void` `reset()`

### Methods inherited from class org.apache.lucene.analysis.TokenFilter

`close, end`

### Methods inherited from class org.apache.lucene.util.AttributeSource

`addAttribute, addAttributeImpl, captureState, clearAttributes, cloneAttributes, copyTo, endAttributes, equals, getAttribute, getAttributeClassesIterator, getAttributeFactory, getAttributeImplsIterator, hasAttribute, hasAttributes, hashCode, reflectAsString, reflectWith, removeAllAttributes, restoreState, toString`

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

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### LimitTokenCountFilter

    public LimitTokenCountFilter(TokenStream in,
                                 int maxTokenCount)

Build a filter that only accepts tokens up to a maximum number. This filter will not consume any tokens beyond the maxTokenCount limit

See Also:
  `LimitTokenCountFilter(TokenStream,int,boolean)`

#### LimitTokenCountFilter

    public LimitTokenCountFilter(TokenStream in,
                                 int maxTokenCount,
                                 boolean consumeAllTokens)

Build an filter that limits the maximum number of tokens per field.

Parameters:
  `in` - the stream to wrap
  `maxTokenCount` - max number of tokens to produce
  `consumeAllTokens` - whether all tokens from the input must be consumed even if maxTokenCount is reached.

### Method Detail

#### incrementToken

    public boolean incrementToken()
                           throws IOException

Specified by:
  `incrementToken` in class `TokenStream`
Throws:
  `IOException`

#### reset

    public void reset()
               throws IOException

Overrides:
  `reset` in class `TokenFilter`
Throws:
  `IOException`