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

Fields
`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

Constructors
Constructor and Description
`PhoneticFilterFactory()` Sole constructor.

### Method Summary

Methods
`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`