org.apache.lucene.analysis.synonym

## Class SynonymGraphFilterFactory

- java.lang.Object
- - org.apache.lucene.analysis.util.AbstractAnalysisFactory
  - - org.apache.lucene.analysis.util.TokenFilterFactory
    - - org.apache.lucene.analysis.synonym.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`
  WARNING: This API is experimental and might change in incompatible ways in the next release.
  SPI Name (Note: This is case-insensitive. e.g., if the name is 'htmlStrip', 'htmlstrip' can be used when looking up the service):
    "synonymGraph"

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `NAME` SPI name

    - ### Fields inherited from class org.apache.lucene.analysis.util.AbstractAnalysisFactory

      `LUCENE_MATCH_VERSION_PARAM, luceneMatchVersion`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SynonymGraphFilterFactory(Map<String,String> args)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `TokenStream` | `create(TokenStream input)` Transform the specified input TokenStream
    `void` | `inform(ResourceLoader loader)` Initializes this component with the provided ResourceLoader (used for loading classes, files, etc).
    `protected SynonymMap` | `loadSynonyms(ResourceLoader loader, String cname, boolean dedup, Analyzer analyzer)` Load synonyms with the given `SynonymMap.Parser` class.

    - ### Methods inherited from class org.apache.lucene.analysis.util.TokenFilterFactory

      `availableTokenFilters, findSPIName, forName, lookupClass, normalize, reloadTokenFilters`

    - ### Methods 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`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### NAME

          public static final String NAME

      SPI name
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### SynonymGraphFilterFactory

          public SynonymGraphFilterFactory(Map<String,String> args)

  - ### Method Detail

    - #### create

          public TokenStream create(TokenStream input)

      Description copied from class: `TokenFilterFactory`
      Transform the specified input TokenStream
      Specified by:
        `create` in class `TokenFilterFactory`

    - #### inform

          public void inform(ResourceLoader loader)
                      throws 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:
        `IOException`

    - #### loadSynonyms

          protected SynonymMap loadSynonyms(ResourceLoader loader,
                                            String cname,
                                            boolean dedup,
                                            Analyzer analyzer)
                                     throws IOException,
                                            ParseException

      Load synonyms with the given `SynonymMap.Parser` class.
      Throws:
        `IOException`
        `ParseException`

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.