org.apache.lucene.search.suggest.document

## Class CompletionAnalyzer

- java.lang.Object
- - org.apache.lucene.analysis.Analyzer
  - - org.apache.lucene.analysis.AnalyzerWrapper
    - - org.apache.lucene.search.suggest.document.CompletionAnalyzer

- All Implemented Interfaces:
    Closeable, AutoCloseable

      public final class CompletionAnalyzer
      extends AnalyzerWrapper

  Wraps an `Analyzer` to provide additional completion-only tuning (e.g. preserving token separators, preserving position increments while converting a token stream to an automaton)

  Can be used to index `SuggestField` and `ContextSuggestField` and as a query analyzer to `PrefixCompletionQuery` amd `FuzzyCompletionQuery`

  NOTE: In most cases, index and query analyzer should have same values for `preservePositionIncrements()` and `preserveSep()`

  Since:
    5.1.0
  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.analysis.Analyzer

      `Analyzer.ReuseStrategy, Analyzer.TokenStreamComponents`

  - ### Field Summary

    - ### Fields inherited from class org.apache.lucene.analysis.Analyzer

      `GLOBAL_REUSE_STRATEGY, PER_FIELD_REUSE_STRATEGY`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CompletionAnalyzer(Analyzer analyzer)` Calls `CompletionAnalyzer(org.apache.lucene.analysis.Analyzer, boolean, boolean, int)` preserving token separation, position increments and no limit on graph expansions
    `CompletionAnalyzer(Analyzer analyzer, boolean preserveSep, boolean preservePositionIncrements)` Calls `CompletionAnalyzer(org.apache.lucene.analysis.Analyzer, boolean, boolean, int)` with no limit on graph expansions
    `CompletionAnalyzer(Analyzer analyzer, boolean preserveSep, boolean preservePositionIncrements, int maxGraphExpansions)` Wraps an analyzer to convert its output token stream to an automaton
    `CompletionAnalyzer(Analyzer analyzer, int maxGraphExpansions)` Calls `CompletionAnalyzer(org.apache.lucene.analysis.Analyzer, boolean, boolean, int)` preserving token separation and position increments

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected Analyzer` | `getWrappedAnalyzer(String fieldName)`
    `boolean` | `preservePositionIncrements()` Returns true if position increments are preserved when converting the token stream to an automaton
    `boolean` | `preserveSep()` Returns true if separation between tokens are preserved when converting the token stream to an automaton
    `protected Analyzer.TokenStreamComponents` | `wrapComponents(String fieldName, Analyzer.TokenStreamComponents components)`

    - ### Methods inherited from class org.apache.lucene.analysis.AnalyzerWrapper

      `attributeFactory, createComponents, getOffsetGap, getPositionIncrementGap, initReader, initReaderForNormalization, normalize, wrapReader, wrapReaderForNormalization, wrapTokenStreamForNormalization`

    - ### Methods inherited from class org.apache.lucene.analysis.Analyzer

      `close, getReuseStrategy, getVersion, normalize, setVersion, tokenStream, tokenStream`

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

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

- - ### Constructor Detail

    - #### CompletionAnalyzer

          public CompletionAnalyzer(Analyzer analyzer,
                                    boolean preserveSep,
                                    boolean preservePositionIncrements,
                                    int maxGraphExpansions)

      Wraps an analyzer to convert its output token stream to an automaton
      Parameters:
        `analyzer` - token stream to be converted to an automaton
        `preserveSep` - Preserve separation between tokens when converting to an automaton
        `preservePositionIncrements` - Preserve position increments for tokens when converting to an automaton
        `maxGraphExpansions` - Sets the maximum number of graph expansions of a completion automaton

    - #### CompletionAnalyzer

          public CompletionAnalyzer(Analyzer analyzer)

      Calls `CompletionAnalyzer(org.apache.lucene.analysis.Analyzer, boolean, boolean, int)` preserving token separation, position increments and no limit on graph expansions

    - #### CompletionAnalyzer

          public CompletionAnalyzer(Analyzer analyzer,
                                    boolean preserveSep,
                                    boolean preservePositionIncrements)

      Calls `CompletionAnalyzer(org.apache.lucene.analysis.Analyzer, boolean, boolean, int)` with no limit on graph expansions

    - #### CompletionAnalyzer

          public CompletionAnalyzer(Analyzer analyzer,
                                    int maxGraphExpansions)

      Calls `CompletionAnalyzer(org.apache.lucene.analysis.Analyzer, boolean, boolean, int)` preserving token separation and position increments

  - ### Method Detail

    - #### preserveSep

          public boolean preserveSep()

      Returns true if separation between tokens are preserved when converting the token stream to an automaton

    - #### preservePositionIncrements

          public boolean preservePositionIncrements()

      Returns true if position increments are preserved when converting the token stream to an automaton

    - #### getWrappedAnalyzer

          protected Analyzer getWrappedAnalyzer(String fieldName)

      Specified by:
        `getWrappedAnalyzer` in class `AnalyzerWrapper`

    - #### wrapComponents

          protected Analyzer.TokenStreamComponents wrapComponents(String fieldName,
                                                                  Analyzer.TokenStreamComponents components)

      Overrides:
        `wrapComponents` in class `AnalyzerWrapper`

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