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 final String`
`ENCODER`
parameter name: either a short name or a full class name
`static final String`
`INJECT`
parameter name: true if encoded tokens should be added as synonyms
`static final String`
`MAX_CODE_LENGTH`
parameter name: restricts the length of the phonetic code
`static final 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

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 Details

### 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 Details

### PhoneticFilterFactory

public PhoneticFilterFactory(Map<String,String> args)
Creates a new PhoneticFilterFactory

### PhoneticFilterFactory

public PhoneticFilterFactory()
Default ctor for compatibility with SPI

## Method Details

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