SynonymMap.Builder (Lucene 10.5.0 common API)
Description: declaration: package: org.apache.lucene.analysis.synonym, class: SynonymMap, class: Builder

Package org.apache.lucene.analysis.synonym

# Class SynonymMap.Builder

java.lang.Object
org.apache.lucene.analysis.synonym.SynonymMap.Builder

Direct Known Subclasses:
  `SynonymMap.Parser`

Enclosing class:
  `SynonymMap`

public static class SynonymMap.Builder extends Object
Builds an FSTSynonymMap.

Call add() until you have added all the mappings, then call build() to get an FSTSynonymMap

WARNING: This API is experimental and might change in incompatible ways in the next release.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Builder()`
  Default constructor, passes `dedup=true`.
  `Builder(boolean dedup)`
  If dedup is true then identical rules (same input, same output) will be added only once.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `add(CharsRef input, CharsRef output, boolean includeOrig)`
  Add a phrase->phrase synonym mapping.
  `SynonymMap`
  `build()`
  Builds an `SynonymMap` and returns it.
  `static CharsRef`
  `join(String[] words, CharsRefBuilder reuse)`
  Sugar: just joins the provided terms with `SynonymMap.WORD_SEPARATOR`.

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

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

- ## Constructor Details

  - ### Builder

    public Builder()
    Default constructor, passes `dedup=true`.

  - ### Builder

    public Builder(boolean dedup)
    If dedup is true then identical rules (same input, same output) will be added only once.

- ## Method Details

  - ### join

    public static CharsRef join(String[] words, CharsRefBuilder reuse)
    Sugar: just joins the provided terms with `SynonymMap.WORD_SEPARATOR`. reuse and its chars must not be null.

  - ### add

    public void add(CharsRef input, CharsRef output, boolean includeOrig)
    Add a phrase->phrase synonym mapping. Phrases are character sequences where words are separated with character zero (U+0000). Empty words (two U+0000s in a row) are not allowed in the input nor the output!
    Parameters:
      `input` - input phrase
      `output` - output phrase
      `includeOrig` - true if the original should be included

  - ### build

    public SynonymMap build() throws IOException
    Builds an `SynonymMap` and returns it.
    Throws:
      `IOException`