Package org.apache.lucene.analysis.phonetic

## Class PhoneticFilterFactory

- java.lang.Object
- - org.apache.lucene.analysis.AbstractAnalysisFactory
  - - org.apache.lucene.analysis.TokenFilterFactory
    - - org.apache.lucene.analysis.phonetic.PhoneticFilterFactory

- All Implemented Interfaces:
    `ResourceLoaderAware`

      public class PhoneticFilterFactory
      extends TokenFilterFactory
      implements ResourceLoaderAware

  Factory for `PhoneticFilter`.

  Create tokens based on phonetic encoders from Apache Commons Codec.

  This takes one required argument, "encoder", and the rest are optional:

  encoder
    required, one of "DoubleMetaphone", "Metaphone", "Soundex", "RefinedSoundex", "Caverphone" (v2.0), "ColognePhonetic" or "Nysiis" (case insensitive). If encoder isn't one of these, it'll be resolved as a class name either by itself if it already contains a '.' or otherwise as in the same package as these others.
  inject
    (default=true) add tokens to the stream with the offset=0
  maxCodeLength
    The maximum length of the phonetic codes, as defined by the encoder. If an encoder doesn't support this then specifying this is an error.

       <fieldType name="text_phonetic" class="solr.TextField" positionIncrementGap="100">
         <analyzer>
           <tokenizer class="solr.WhitespaceTokenizerFactory"/>
           <filter class="solr.PhoneticFilterFactory" encoder="DoubleMetaphone" inject="true"/>
         </analyzer>
       </fieldType>

  Since:
    3.1
  See Also:
    `PhoneticFilter`
  SPI Name (case-insensitive: if the name is 'htmlStrip', 'htmlstrip' can be used when looking up the service).
    "phonetic"

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `ENCODER` | parameter name: either a short name or a full class name
    `static String` | `INJECT` | parameter name: true if encoded tokens should be added as synonyms
    `static String` | `MAX_CODE_LENGTH` | parameter name: restricts the length of the phonetic code
    `static String` | `NAME` | SPI name

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

      `LUCENE_MATCH_VERSION_PARAM, luceneMatchVersion`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `PhoneticFilterFactory()` | Default ctor for compatibility with SPI
    `PhoneticFilterFactory​(Map<String,​String> args)` | Creates a new PhoneticFilterFactory

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `PhoneticFilter` | `create​(TokenStream input)` |
    `protected org.apache.commons.codec.Encoder` | `getEncoder()` | Must be thread-safe.
    `void` | `inform​(ResourceLoader loader)` |

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

      `availableTokenFilters, findSPIName, forName, lookupClass, normalize, reloadTokenFilters`

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

      `defaultCtorException, get, get, get, get, get, getBoolean, getChar, getClassArg, getFloat, getInt, getLines, getLuceneMatchVersion, getOriginalArgs, getPattern, getSet, getSnowballWordSet, getWordSet, isExplicitLuceneMatchVersion, require, require, require, requireBoolean, requireChar, requireFloat, requireInt, setExplicitLuceneMatchVersion, splitAt, splitFileNames`

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

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

- - ### Field Detail

    - #### NAME

          public static final String NAME

      SPI name
      See Also:
        Constant Field Values

    - #### ENCODER

          public static final String ENCODER

      parameter name: either a short name or a full class name
      See Also:
        Constant Field Values

    - #### INJECT

          public static final String INJECT

      parameter name: true if encoded tokens should be added as synonyms
      See Also:
        Constant Field Values

    - #### MAX_CODE_LENGTH

          public static final String MAX_CODE_LENGTH

      parameter name: restricts the length of the phonetic code
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### PhoneticFilterFactory

          public PhoneticFilterFactory​(Map<String,​String> args)

      Creates a new PhoneticFilterFactory

    - #### PhoneticFilterFactory

          public PhoneticFilterFactory()

      Default ctor for compatibility with SPI

  - ### Method Detail

    - #### inform

          public void inform​(ResourceLoader loader)
                      throws IOException

      Specified by:
        `inform` in interface `ResourceLoaderAware`
      Throws:
        `IOException`

    - #### getEncoder

          protected org.apache.commons.codec.Encoder getEncoder()

      Must be thread-safe.

    - #### create

          public PhoneticFilter create​(TokenStream input)

      Specified by:
        `create` in class `TokenFilterFactory`