org.apache.lucene.analysis

## Class PerFieldAnalyzerWrapper

- java.lang.Object
- - org.apache.lucene.analysis.Analyzer
  - - org.apache.lucene.analysis.PerFieldAnalyzerWrapper

-     public class PerFieldAnalyzerWrapper
      extends Analyzer

  This analyzer is used to facilitate scenarios where different fields require different analysis techniques. Use `addAnalyzer(java.lang.String, org.apache.lucene.analysis.Analyzer)` to add a non-default analyzer on a field name basis.

  Example usage:

         PerFieldAnalyzerWrapper aWrapper =
            new PerFieldAnalyzerWrapper(new StandardAnalyzer());
         aWrapper.addAnalyzer("firstname", new KeywordAnalyzer());
         aWrapper.addAnalyzer("lastname", new KeywordAnalyzer());

  In this example, StandardAnalyzer will be used for all fields except "firstname" and "lastname", for which KeywordAnalyzer will be used.

  A PerFieldAnalyzerWrapper can be used like any other analyzer, for both indexing and query parsing.

- - ### Field Summary

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

      `overridesTokenStreamMethod`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PerFieldAnalyzerWrapper(Analyzer defaultAnalyzer)` Constructs with default analyzer.
    `PerFieldAnalyzerWrapper(Analyzer defaultAnalyzer, java.util.Map fieldAnalyzers)` Constructs with default analyzer and a map of analyzers to use for specific fields.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addAnalyzer(java.lang.String fieldName, Analyzer analyzer)` Defines an analyzer to use for the specified field.
    `int` | `getOffsetGap(Fieldable field)` Return the offsetGap from the analyzer assigned to field
    `int` | `getPositionIncrementGap(java.lang.String fieldName)` Return the positionIncrementGap from the analyzer assigned to fieldName
    `TokenStream` | `reusableTokenStream(java.lang.String fieldName, java.io.Reader reader)` Creates a TokenStream that is allowed to be re-used from the previous time that the same thread called this method.
    `TokenStream` | `tokenStream(java.lang.String fieldName, java.io.Reader reader)` Creates a TokenStream which tokenizes all the text in the provided Reader.
    `java.lang.String` | `toString()`

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

      `close, getPreviousTokenStream, setOverridesTokenStreamMethod, setPreviousTokenStream`

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

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

- - ### Constructor Detail

    - #### PerFieldAnalyzerWrapper

          public PerFieldAnalyzerWrapper(Analyzer defaultAnalyzer)

      Constructs with default analyzer.
      Parameters:
        `defaultAnalyzer` - Any fields not specifically defined to use a different analyzer will use the one provided here.

    - #### PerFieldAnalyzerWrapper

          public PerFieldAnalyzerWrapper(Analyzer defaultAnalyzer,
                                         java.util.Map fieldAnalyzers)

      Constructs with default analyzer and a map of analyzers to use for specific fields.
      Parameters:
        `defaultAnalyzer` - Any fields not specifically defined to use a different analyzer will use the one provided here.
        `fieldAnalyzers` - a Map (String field name to the Analyzer) to be used for those fields

  - ### Method Detail

    - #### addAnalyzer

          public void addAnalyzer(java.lang.String fieldName,
                                  Analyzer analyzer)

      Defines an analyzer to use for the specified field.
      Parameters:
        `fieldName` - field name requiring a non-default analyzer
        `analyzer` - non-default analyzer to use for field

    - #### tokenStream

          public TokenStream tokenStream(java.lang.String fieldName,
                                         java.io.Reader reader)

      Description copied from class: `Analyzer`
      Creates a TokenStream which tokenizes all the text in the provided Reader. Must be able to handle null field name for backward compatibility.
      Specified by:
        `tokenStream` in class `Analyzer`

    - #### reusableTokenStream

          public TokenStream reusableTokenStream(java.lang.String fieldName,
                                                 java.io.Reader reader)
                                          throws java.io.IOException

      Description copied from class: `Analyzer`
      Creates a TokenStream that is allowed to be re-used from the previous time that the same thread called this method. Callers that do not need to use more than one TokenStream at the same time from this analyzer should use this method for better performance.
      Overrides:
        `reusableTokenStream` in class `Analyzer`
      Throws:
        `java.io.IOException`

    - #### getPositionIncrementGap

          public int getPositionIncrementGap(java.lang.String fieldName)

      Return the positionIncrementGap from the analyzer assigned to fieldName
      Overrides:
        `getPositionIncrementGap` in class `Analyzer`
      Parameters:
        `fieldName` - Fieldable name being indexed.
      Returns:
        position increment gap, added to the next token emitted from `Analyzer.tokenStream(String,Reader)`

    - #### getOffsetGap

          public int getOffsetGap(Fieldable field)

      Return the offsetGap from the analyzer assigned to field
      Overrides:
        `getOffsetGap` in class `Analyzer`
      Parameters:
        `field` - the field just indexed
      Returns:
        offset gap, added to the next token emitted from `Analyzer.tokenStream(String,Reader)`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

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