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

    All Methods Static Methods Instance Methods Concrete Methods
    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 Detail

    - #### 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 Detail

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