Package org.apache.lucene.analysis.synonym

# Class SynonymGraphFilterFactory

java.lang.Object
org.apache.lucene.analysis.AbstractAnalysisFactory
org.apache.lucene.analysis.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 (case-insensitive: if the name is 'htmlStrip', 'htmlstrip' can be used when looking up the service).
  "synonymGraph"

- ## Field Summary

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

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

  `LUCENE_MATCH_VERSION_PARAM, luceneMatchVersion`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SynonymGraphFilterFactory()`
  Default ctor for compatibility with SPI
  `SynonymGraphFilterFactory(Map<String,String> args)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `TokenStream`
  `create(TokenStream input)`
  `void`
  `inform(ResourceLoader loader)`
  `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.TokenFilterFactory

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

  ### Methods inherited from class org.apache.lucene.analysis.AbstractAnalysisFactory

  `defaultCtorException, 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 Details

  - ### NAME

    public static final String NAME
    SPI name
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### SynonymGraphFilterFactory

    public SynonymGraphFilterFactory(Map<String,String> args)

  - ### SynonymGraphFilterFactory

    public SynonymGraphFilterFactory()
    Default ctor for compatibility with SPI

- ## Method Details

  - ### create

    public TokenStream create(TokenStream input)
    Specified by:
      `create` in class `TokenFilterFactory`

  - ### inform

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