## org.apache.lucene.analysis.ngram
Class EdgeNGramTokenFilter

    java.lang.Object
      org.apache.lucene.util.AttributeSource
          org.apache.lucene.analysis.TokenStream
              org.apache.lucene.analysis.TokenFilter
                  org.apache.lucene.analysis.ngram.EdgeNGramTokenFilter

All Implemented Interfaces:
  Closeable

    public final class EdgeNGramTokenFilter

extends TokenFilter

Tokenizes the given token into n-grams of given size(s).

This `TokenFilter` create n-grams from the beginning edge or ending edge of a input token.

Nested Class Summary
`static class` `EdgeNGramTokenFilter.Side` Specifies which side of the input the n-gram should be generated from

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

Field Summary
`static int` `DEFAULT_MAX_GRAM_SIZE`
`static int` `DEFAULT_MIN_GRAM_SIZE`
`static EdgeNGramTokenFilter.Side` `DEFAULT_SIDE`

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

Constructor Summary
`EdgeNGramTokenFilter(TokenStream input, EdgeNGramTokenFilter.Side side, int minGram, int maxGram)` Creates EdgeNGramTokenFilter that can generate n-grams in the sizes of the given range
`EdgeNGramTokenFilter(TokenStream input, String sideLabel, int minGram, int maxGram)` Creates EdgeNGramTokenFilter that can generate n-grams in the sizes of the given range

Method Summary
`boolean` `incrementToken()` Consumers (i.e., `IndexWriter`) use this method to advance the stream to the next token.
`void` `reset()` Reset the filter as well as the input TokenStream.

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

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

Field Detail

### DEFAULT_SIDE

    public static final EdgeNGramTokenFilter.Side DEFAULT_SIDE

### DEFAULT_MAX_GRAM_SIZE

    public static final int DEFAULT_MAX_GRAM_SIZE

See Also:
  Constant Field Values

### DEFAULT_MIN_GRAM_SIZE

    public static final int DEFAULT_MIN_GRAM_SIZE

See Also:
  Constant Field Values

Constructor Detail

### EdgeNGramTokenFilter

    public EdgeNGramTokenFilter(TokenStream input,
                                EdgeNGramTokenFilter.Side side,
                                int minGram,
                                int maxGram)

  Creates EdgeNGramTokenFilter that can generate n-grams in the sizes of the given range

  Parameters:
    `input` - `TokenStream` holding the input to be tokenized
    `side` - the `EdgeNGramTokenFilter.Side` from which to chop off an n-gram
    `minGram` - the smallest n-gram to generate
    `maxGram` - the largest n-gram to generate

### EdgeNGramTokenFilter

    public EdgeNGramTokenFilter(TokenStream input,
                                String sideLabel,
                                int minGram,
                                int maxGram)

  Creates EdgeNGramTokenFilter that can generate n-grams in the sizes of the given range

  Parameters:
    `input` - `TokenStream` holding the input to be tokenized
    `sideLabel` - the name of the `EdgeNGramTokenFilter.Side` from which to chop off an n-gram
    `minGram` - the smallest n-gram to generate
    `maxGram` - the largest n-gram to generate

Method Detail

### incrementToken

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

### reset

    public void reset()
               throws IOException

  Description copied from class: `TokenFilter`
  Reset the filter as well as the input TokenStream.

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