Class 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:
  • Field Details

    • NAME

      public static final String NAME
      SPI name
      See Also:
    • ENCODER

      public static final String ENCODER
      parameter name: either a short name or a full class name
      See Also:
    • INJECT

      public static final String INJECT
      parameter name: true if encoded tokens should be added as synonyms
      See Also:
    • MAX_CODE_LENGTH

      public static final String MAX_CODE_LENGTH
      parameter name: restricts the length of the phonetic code
      See Also:
    • PACKAGE_CONTAINING_ENCODERS

      private static final String PACKAGE_CONTAINING_ENCODERS
      See Also:
    • registry

      private static final Map<String,Class<? extends org.apache.commons.codec.Encoder>> registry
    • inject

      final boolean inject
    • name

      private final String name
    • maxCodeLength

      private final Integer maxCodeLength
    • clazz

      private Class<? extends org.apache.commons.codec.Encoder> clazz
    • setMaxCodeLenMethod

      private Method setMaxCodeLenMethod
  • Constructor Details

    • PhoneticFilterFactory

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

      public PhoneticFilterFactory()
      Default ctor for compatibility with SPI
  • Method Details