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 forPhoneticFilter
. 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 (Note: This is case-insensitive. e.g., 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 namestatic String
INJECT
parameter name: true if encoded tokens should be added as synonymsstatic String
MAX_CODE_LENGTH
parameter name: restricts the length of the phonetic codestatic String
NAME
SPI name-
Fields inherited from class org.apache.lucene.analysis.util.AbstractAnalysisFactory
LUCENE_MATCH_VERSION_PARAM, luceneMatchVersion
-
-
Constructor Summary
Constructors Constructor Description 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.util.TokenFilterFactory
availableTokenFilters, findSPIName, forName, lookupClass, normalize, reloadTokenFilters
-
Methods inherited from class org.apache.lucene.analysis.util.AbstractAnalysisFactory
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
-
-
-
-
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
-
-
Method Detail
-
inform
public void inform(ResourceLoader loader) throws IOException
- Specified by:
inform
in interfaceResourceLoaderAware
- Throws:
IOException
-
getEncoder
protected org.apache.commons.codec.Encoder getEncoder()
Must be thread-safe.
-
create
public PhoneticFilter create(TokenStream input)
- Specified by:
create
in classTokenFilterFactory
-
-