org.apache.lucene.analysis.util

## Class FilteringTokenFilter

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

All Implemented Interfaces:
  Closeable, AutoCloseable

Direct Known Subclasses:
  KeepWordFilter, LengthFilter, StopFilter, TypeTokenFilter

    public abstract class FilteringTokenFilter
    extends TokenFilter

Abstract base class for TokenFilters that may remove tokens. You have to implement `accept()` and return a boolean if the current token should be preserved. `incrementToken()` uses this method to decide if a token should be passed to the caller.

### Nested Class Summary

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

`AttributeSource.AttributeFactory, AttributeSource.State`

### Field Summary

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

`input`

### Constructor Summary

Constructors
Constructor and Description
`FilteringTokenFilter(boolean enablePositionIncrements, TokenStream input)`

### Method Summary

Methods
`protected abstract boolean` `accept()` Override this method and return if the current input token should be returned by `incrementToken()`.
`boolean` `getEnablePositionIncrements()`
`boolean` `incrementToken()`
`void` `reset()`
`void` `setEnablePositionIncrements(boolean enable)` If `true`, this TokenFilter will preserve positions of the incoming tokens (ie, accumulate and set position increments of the removed tokens).

### 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, equals, getAttribute, getAttributeClassesIterator, getAttributeFactory, getAttributeImplsIterator, hasAttribute, hasAttributes, hashCode, reflectAsString, reflectWith, restoreState`

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

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

### Constructor Detail

#### FilteringTokenFilter

    public FilteringTokenFilter(boolean enablePositionIncrements,
                        TokenStream input)

### Method Detail

#### accept

    protected abstract boolean accept()
                               throws IOException

Override this method and return if the current input token should be returned by `incrementToken()`.

Throws:
  `IOException`

#### incrementToken

    public final 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`

#### getEnablePositionIncrements

    public boolean getEnablePositionIncrements()

See Also:
  `setEnablePositionIncrements(boolean)`

#### setEnablePositionIncrements

    public void setEnablePositionIncrements(boolean enable)

If `true`, this TokenFilter will preserve positions of the incoming tokens (ie, accumulate and set position increments of the removed tokens). Generally, `true` is best as it does not lose information (positions of the original tokens) during indexing.

When set, when a token is stopped (omitted), the position increment of the following token is incremented.

NOTE: be sure to also set org.apache.lucene.queryparser.classic.QueryParser#setEnablePositionIncrements if you use QueryParser to create queries.