org.apache.lucene.analysis.hunspell

## Class HunspellStemFilter

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

- All Implemented Interfaces:
    Closeable, AutoCloseable

      public final class HunspellStemFilter
      extends TokenFilter

  TokenFilter that uses hunspell affix rules and words to stem tokens. Since hunspell supports a word having multiple stems, this filter can emit multiple tokens for each consumed token

  Note: This filter is aware of the `KeywordAttribute`. To prevent certain terms from being passed to the stemmer `KeywordAttribute.isKeyword()` should be set to `true` in a previous `TokenStream`. Note: For including the original term as well as the stemmed version, see `KeywordRepeatFilterFactory`

  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.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
    `HunspellStemFilter(TokenStream input, Dictionary dictionary)` Create a `HunspellStemFilter` outputting all possible stems.
    `HunspellStemFilter(TokenStream input, Dictionary dictionary, boolean dedup)` Create a `HunspellStemFilter` outputting all possible stems.
    `HunspellStemFilter(TokenStream input, Dictionary dictionary, boolean dedup, boolean longestOnly)` Creates a new HunspellStemFilter that will stem tokens from the given TokenStream using affix rules in the provided Dictionary

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

    - #### HunspellStemFilter

          public HunspellStemFilter(TokenStream input,
                                    Dictionary dictionary)

      Create a `HunspellStemFilter` outputting all possible stems.
      See Also:
        `HunspellStemFilter(TokenStream, Dictionary, boolean)`

    - #### HunspellStemFilter

          public HunspellStemFilter(TokenStream input,
                                    Dictionary dictionary,
                                    boolean dedup)

      Create a `HunspellStemFilter` outputting all possible stems.
      See Also:
        `HunspellStemFilter(TokenStream, Dictionary, boolean, boolean)`

    - #### HunspellStemFilter

          public HunspellStemFilter(TokenStream input,
                                    Dictionary dictionary,
                                    boolean dedup,
                                    boolean longestOnly)

      Creates a new HunspellStemFilter that will stem tokens from the given TokenStream using affix rules in the provided Dictionary
      Parameters:
        `input` - TokenStream whose tokens will be stemmed
        `dictionary` - HunspellDictionary containing the affix rules and words that will be used to stem the tokens
        `longestOnly` - true if only the longest term should be output.

  - ### 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-2020 Apache Software Foundation. All Rights Reserved.