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
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:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Class<? extends org.apache.commons.codec.Encoder> static final Stringparameter name: either a short name or a full class name(package private) final booleanstatic final Stringparameter name: true if encoded tokens should be added as synonymsstatic final Stringparameter name: restricts the length of the phonetic codeprivate final Integerprivate final Stringstatic final StringSPI nameprivate static final Stringprivate MethodFields inherited from class org.apache.lucene.analysis.util.AbstractAnalysisFactory
LUCENE_MATCH_VERSION_PARAM, luceneMatchVersion -
Constructor Summary
ConstructorsConstructorDescriptionPhoneticFilterFactory(Map<String, String> args) Creates a new PhoneticFilterFactory -
Method Summary
Modifier and TypeMethodDescriptioncreate(TokenStream input) Transform the specified input TokenStreamprotected org.apache.commons.codec.EncoderMust be thread-safe.voidinform(ResourceLoader loader) Initializes this component with the provided ResourceLoader (used for loading classes, files, etc).private Class<? extends org.apache.commons.codec.Encoder> resolveEncoder(String name, ResourceLoader loader) Methods inherited from class org.apache.lucene.analysis.util.TokenFilterFactory
availableTokenFilters, findSPIName, forName, lookupClass, normalize, reloadTokenFiltersMethods 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 Details
-
NAME
SPI name- See Also:
-
ENCODER
parameter name: either a short name or a full class name- See Also:
-
INJECT
parameter name: true if encoded tokens should be added as synonyms- See Also:
-
MAX_CODE_LENGTH
parameter name: restricts the length of the phonetic code- See Also:
-
PACKAGE_CONTAINING_ENCODERS
- See Also:
-
registry
-
inject
final boolean inject -
name
-
maxCodeLength
-
clazz
-
setMaxCodeLenMethod
-
-
Constructor Details
-
PhoneticFilterFactory
Creates a new PhoneticFilterFactory
-
-
Method Details
-
inform
Description copied from interface:ResourceLoaderAwareInitializes this component with the provided ResourceLoader (used for loading classes, files, etc).- Specified by:
informin interfaceResourceLoaderAware- Throws:
IOException
-
resolveEncoder
private Class<? extends org.apache.commons.codec.Encoder> resolveEncoder(String name, ResourceLoader loader) -
getEncoder
protected org.apache.commons.codec.Encoder getEncoder()Must be thread-safe. -
create
Description copied from class:TokenFilterFactoryTransform the specified input TokenStream- Specified by:
createin classTokenFilterFactory
-