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
    Modifier and Type | Method and Description
    --- | ---
    `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`

Copyright © 2000-2024 Apache Software Foundation. All Rights Reserved.