## org.apache.lucene.analysis.phonetic
Class PhoneticFilterFactory

    java.lang.Object
      org.apache.lucene.analysis.util.AbstractAnalysisFactory
          org.apache.lucene.analysis.util.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), or "ColognePhonetic" (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>

See Also:
  `PhoneticFilter`

Field Summary
`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

Fields inherited from class org.apache.lucene.analysis.util.AbstractAnalysisFactory
`args, luceneMatchVersion`

Constructor Summary
`PhoneticFilterFactory()` Sole constructor.

Method Summary
`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.util.TokenFilterFactory
`availableTokenFilters, forName, lookupClass, reloadTokenFilters`

Methods inherited from class org.apache.lucene.analysis.util.AbstractAnalysisFactory
`assureMatchVersion, getArgs, getBoolean, getBoolean, getInt, getInt, getInt, getLines, getLuceneMatchVersion, getOriginalArgs, getPattern, getSnowballWordSet, getWordSet, init, setLuceneMatchVersion, splitFileNames`

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

Field Detail

### 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()

  Sole constructor. See `AbstractAnalysisFactory` for initialization lifecycle.

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`

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