Class SynonymGraphFilterFactory

  • All Implemented Interfaces:
    ResourceLoaderAware

    public class SynonymGraphFilterFactory
    extends TokenFilterFactory
    implements ResourceLoaderAware
    Factory for SynonymGraphFilter.
     <fieldType name="text_synonym" class="solr.TextField" positionIncrementGap="100">
       <analyzer>
         <tokenizer class="solr.WhitespaceTokenizerFactory"/>
         <filter class="solr.SynonymGraphFilterFactory" synonyms="synonyms.txt"
                 format="solr" ignoreCase="false" expand="true"
                 tokenizerFactory="solr.WhitespaceTokenizerFactory"
                 [optional tokenizer factory parameters]/>
       </analyzer>
     </fieldType>

    An optional param name prefix of "tokenizerFactory." may be used for any init params that the SynonymGraphFilterFactory needs to pass to the specified TokenizerFactory. If the TokenizerFactory expects an init parameters with the same name as an init param used by the SynonymGraphFilterFactory, the prefix is mandatory.

    The optional format parameter controls how the synonyms will be parsed: It supports the short names of solr for SolrSynonymParser and wordnet for and WordnetSynonymParser, or your own SynonymMap.Parser class name. The default is solr. A custom SynonymMap.Parser is expected to have a constructor taking:

    • boolean dedup - true if duplicates should be ignored, false otherwise
    • boolean expand - true if conflation groups should be expanded, false if they are one-directional
    • Analyzer analyzer - an analyzer used for each raw synonym
    Since:
    6.4.0
    See Also:
    SolrSynonymParser: default format
    • Field Detail

      • ignoreCase

        private final boolean ignoreCase
      • tokenizerFactory

        private final java.lang.String tokenizerFactory
      • synonyms

        private final java.lang.String synonyms
      • format

        private final java.lang.String format
      • expand

        private final boolean expand
      • analyzerName

        private final java.lang.String analyzerName
      • tokArgs

        private final java.util.Map<java.lang.String,​java.lang.String> tokArgs
    • Constructor Detail

      • SynonymGraphFilterFactory

        public SynonymGraphFilterFactory​(java.util.Map<java.lang.String,​java.lang.String> args)
      • SynonymGraphFilterFactory

        public SynonymGraphFilterFactory()
        Default ctor for compatibility with SPI
    • Method Detail

      • inform

        public void inform​(ResourceLoader loader)
                    throws java.io.IOException
        Description copied from interface: ResourceLoaderAware
        Initializes this component with the provided ResourceLoader (used for loading classes, files, etc).
        Specified by:
        inform in interface ResourceLoaderAware
        Throws:
        java.io.IOException
      • loadSynonyms

        protected SynonymMap loadSynonyms​(ResourceLoader loader,
                                          java.lang.String cname,
                                          boolean dedup,
                                          Analyzer analyzer)
                                   throws java.io.IOException,
                                          java.text.ParseException
        Load synonyms with the given SynonymMap.Parser class.
        Throws:
        java.io.IOException
        java.text.ParseException
      • loadTokenizerFactory

        private TokenizerFactory loadTokenizerFactory​(ResourceLoader loader,
                                                      java.lang.String cname)
                                               throws java.io.IOException
        Throws:
        java.io.IOException
      • loadAnalyzer

        private Analyzer loadAnalyzer​(ResourceLoader loader,
                                      java.lang.String cname)
                               throws java.io.IOException
        Throws:
        java.io.IOException