## org.apache.lucene.analysis.ja
Class JapaneseKatakanaStemFilter

    java.lang.Object
      org.apache.lucene.util.AttributeSource
          org.apache.lucene.analysis.TokenStream
              org.apache.lucene.analysis.TokenFilter
                  org.apache.lucene.analysis.ja.JapaneseKatakanaStemFilter

All Implemented Interfaces:
  Closeable

    public final class JapaneseKatakanaStemFilter

extends TokenFilter

A `TokenFilter` that normalizes common katakana spelling variations ending in a long sound character by removing this character (U+30FC). Only katakana words longer than a minimum length are stemmed (default is four).

Note that only full-width katakana characters are supported. Please use a `CJKWidthFilter` to convert half-width katakana to full-width before using this filter.

In order to prevent terms from being stemmed, use an instance of `KeywordMarkerFilter` or a custom `TokenFilter` that sets the `KeywordAttribute` before this `TokenStream`.

Nested Class Summary

Nested classes/interfaces inherited from class org.apache.lucene.util.AttributeSource
`AttributeSource.AttributeFactory, AttributeSource.State`

Field Summary
`static int` `DEFAULT_MINIMUM_LENGTH`

Fields inherited from class org.apache.lucene.analysis.TokenFilter
`input`

Constructor Summary
`JapaneseKatakanaStemFilter(TokenStream input)`
`JapaneseKatakanaStemFilter(TokenStream input, int minimumLength)`

Method Summary
`boolean` `incrementToken()` Consumers (i.e., `IndexWriter`) use this method to advance the stream to the next token.

Methods inherited from class org.apache.lucene.analysis.TokenFilter
`close, end, reset`

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, toString`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Field Detail

### DEFAULT_MINIMUM_LENGTH

    public static final int DEFAULT_MINIMUM_LENGTH

See Also:
  Constant Field Values

Constructor Detail

### JapaneseKatakanaStemFilter

    public JapaneseKatakanaStemFilter(TokenStream input,
                                      int minimumLength)

### JapaneseKatakanaStemFilter

    public JapaneseKatakanaStemFilter(TokenStream input)

Method Detail

### incrementToken

    public boolean incrementToken()
                           throws IOException

  Description copied from class: `TokenStream`
  Consumers (i.e., `IndexWriter`) use this method to advance the stream to the next token. Implementing classes must implement this method and update the appropriate `AttributeImpl`s with the attributes of the next token.

  The producer must make no assumptions about the attributes after the method has been returned: the caller may arbitrarily change it. If the producer needs to preserve the state for subsequent calls, it can use `AttributeSource.captureState()` to create a copy of the current attribute state.

  This method is called for every token of a document, so an efficient implementation is crucial for good performance. To avoid calls to `AttributeSource.addAttribute(Class)` and `AttributeSource.getAttribute(Class)`, references to all `AttributeImpl`s that this stream uses should be retrieved during instantiation.

  To ensure that filters and consumers know which attributes are available, the attributes must be added during instantiation. Filters and consumers are not required to check for availability of attributes in `TokenStream.incrementToken()`.

  Specified by:
    `incrementToken` in class `TokenStream`
  Returns:
    false for end of stream; true otherwise
  Throws:
    `IOException`