public class PhoneticFilterFactory extends BaseTokenFilterFactory
PhoneticFilter
.
Create tokens based on phonetic encoders
http://jakarta.apache.org/commons/codec/api-release/org/apache/commons/codec/language/package-summary.html
This takes two arguments:
"encoder" required, one of "DoubleMetaphone", "Metaphone", "Soundex", "RefinedSoundex"
"inject" (default=true) add tokens to the stream with the offset=0
<fieldType name="text_phonetic" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.PhoneticFilterFactory" encoder="DoubleMetaphone" inject="true"/> </analyzer> </fieldType>
PhoneticFilter
Modifier and Type | Field and Description |
---|---|
protected org.apache.commons.codec.Encoder |
encoder |
static java.lang.String |
ENCODER |
protected boolean |
inject |
static java.lang.String |
INJECT |
private static java.util.concurrent.locks.Lock |
lock |
protected java.lang.String |
name |
private static java.lang.String |
PACKAGE_CONTAINING_ENCODERS |
private static java.util.Map<java.lang.String,java.lang.Class<? extends org.apache.commons.codec.Encoder>> |
registry |
log
args, luceneMatchVersion
Constructor and Description |
---|
PhoneticFilterFactory() |
Modifier and Type | Method and Description |
---|---|
org.apache.lucene.analysis.TokenFilter |
create(org.apache.lucene.analysis.TokenStream input)
Transform the specified input TokenStream
|
void |
init(java.util.Map<java.lang.String,java.lang.String> args)
init will be called just once, immediately after creation. |
private java.lang.Class<? extends org.apache.commons.codec.Encoder> |
lookupEncoder(java.lang.String name) |
private java.lang.Class<? extends org.apache.commons.codec.Encoder> |
resolveEncoder(java.lang.String name) |
assureMatchVersion, getArgs, getBoolean, getBoolean, getInt, getInt, getInt, getSnowballWordSet, getWordSet, warnDeprecated
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getArgs
public static final java.lang.String ENCODER
public static final java.lang.String INJECT
private static final java.lang.String PACKAGE_CONTAINING_ENCODERS
private static final java.util.Map<java.lang.String,java.lang.Class<? extends org.apache.commons.codec.Encoder>> registry
private static final java.util.concurrent.locks.Lock lock
protected boolean inject
protected java.lang.String name
protected org.apache.commons.codec.Encoder encoder
public void init(java.util.Map<java.lang.String,java.lang.String> args)
TokenFilterFactory
init
will be called just once, immediately after creation.
The args are user-level initialization parameters that may be specified when declaring the factory in the schema.xml
init
in interface TokenFilterFactory
init
in class BaseTokenStreamFactory
private java.lang.Class<? extends org.apache.commons.codec.Encoder> resolveEncoder(java.lang.String name)
private java.lang.Class<? extends org.apache.commons.codec.Encoder> lookupEncoder(java.lang.String name) throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundException
public org.apache.lucene.analysis.TokenFilter create(org.apache.lucene.analysis.TokenStream input)
TokenFilterFactory