Namespace Lucene.Net.Analysis.Phonetic
Analysis for indexing phonetic signatures (for sounds-alike search)
For an introduction to Lucene's analysis API, see the Lucene.Net.Analysis package documentation.
This module provides analysis components (using encoders from Apache Commons Codec) that index and search phonetic signatures.
Classes
BeiderMorseFilter
TokenFilter for Beider-Morse phonetic encoding.
This is a Lucene.NET EXPERIMENTAL API, use at your own risk
BeiderMorseFilterFactory
Factory for BeiderMorseFilter.
<fieldType name="text_bm" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.BeiderMorseFilterFactory"
nameType="GENERIC" ruleType="APPROX"
concat="true" languageSet="auto"
</filter>
</analyzer>
</fieldType>
DoubleMetaphoneFilter
Filter for DoubleMetaphone (supporting secondary codes)
DoubleMetaphoneFilterFactory
Factory for DoubleMetaphoneFilter.
<fieldType name="text_dblmtphn" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.DoubleMetaphoneFilterFactory" inject="true" maxCodeLength="4"/>
</analyzer>
</fieldType>
PhoneticFilter
Create tokens for phonetic matches. See the Language namespace.
PhoneticFilterFactory
Factory for PhoneticFilter.
Create tokens based on phonetic encoders from the Language namespace.
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>