> ## Documentation Index
> Fetch the complete documentation index at: https://doc.lucidworks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Synonyms

export const LwTemplate = ({title = "Key questions to get you started", icon = "sparkles", cta = "Powered by Agent Studio", linkHref = "https://lucidworks.com/demo/?utm_source=docs&utm_medium=referral&utm_campaign=docs_cta_ai"}) => {
  const [isLoaded, setIsLoaded] = useState(false);
  useEffect(() => {
    const timer = setTimeout(() => {
      setIsLoaded(true);
    }, 500);
    return () => clearTimeout(timer);
  }, []);
  return <div className="lw-template-container">
      <Card title={title} icon={icon}>
        {isLoaded && <span dangerouslySetInnerHTML={{
    __html: `<lw-template id="a029c1a9-28be-427e-b0e1-5d918920246a"></lw-template
            >`
  }} />}
        <Link href={linkHref} className="agent-studio-link text-left text-gray-600 gap-2 dark:text-gray-400 text-sm font-medium flex flex-row items-center hover:text-primary dark:hover:text-primary-light group-hover:text-primary group-hover:dark:text-primary-light">Powered by Lucidworks Agent Studio</Link>
      </Card>
    </div>;
};

export const InlineImage = ({src, alt = '', height = '2em'}) => {
  return <img src={src} alt={alt} style={{
    display: 'inline',
    verticalAlign: 'start',
    height: height,
    margin: '0'
  }} />;
};

[localhost link]: http://localhost:3000/docs/5/fusion/getting-data-out/query-enhancement/synonyms/overview

[mintlify link]: https://doc.lucidworks.com/docs/5/fusion/getting-data-out/query-enhancement/synonyms/overview

[old doc.lw link]: https://doc.lucidworks.com/fusion/5.9/3240

Synonyms are interchangeable terms that can be used to expand a query to retrieve more or better search results. For example, "TV" and "television" can be considered synonyms. When a user enters one of these terms, Fusion can also look for results containing the other term.

<Note>
  The Synonym Detection job described in this topic is deprecated in Fusion 5.9.15 and will be removed in a future release.
  Lucidworks recommends migrating to [Neural Hybrid Search](/docs/5/fusion/hybrid-search/overview), which achieves superior relevance compared to legacy machine learning methods.
  You can still manually add synonyms to Solr's `synonyms.txt` file.
</Note>

More specifically, synonyms are:

* Words that mean the same thing, within the context where they are used.
* Used in searches. And synonym expansion allows Fusion to return results that match the meaning of the query terms, but not the words themselves.
* Important for mapping query terms such as:

  * Acronyms to their names
  * Jargon to public terms
  * Misspellings to correct spellings
  * Old to new personal or corporate names
  * Bridging the gap between the user vocabulary and terms in the original text

Fusion uses the Solr `synonyms.txt` and Solr collections, which are managed by Fusion.

Solr itself manages a set of [resources](https://cwiki.apache.org/confluence/display/solr/Managed+Resources) to apply synonym expansion, with configuration through the Fusion API and the Fusion UI.
However, Fusion synonyms are not interchangeable with Solr synonyms files.

If you have a Fusion license, see also the [Synonym Detection Jobs](/docs/5/fusion/reference/config-ref/jobs/synonym-detection) which automatically detects synonyms to use in [query rewriting](/docs/5/fusion/getting-data-out/query-enhancement/query-rewriting).

<Note>
  See **Use Synonym Detection** for more information.
</Note>

<Accordion title="Use Synonym Detection">
  Based on the release, synonyms are automatically created based on your AI-generated data. When you navigate to **Relevance** > **Rules** > **Rewrite** and select the **Synonym** tab, the application displays the **Synonym Detection** screen. For more information, see:

  <Tip>When you manually add new synonym pairs, subsequent job runs use those documents as input for machine learning to improve the job’s output.  Unlike job-generated documents, manually-added query rewriting documents are never overwritten by new job output.</Tip>

  <img src="https://mintcdn.com/lucidworks/tklssWuUmNaxlF0b/assets/images/5.4/add-synonym.png?fit=max&auto=format&n=tklssWuUmNaxlF0b&q=85&s=7153d9989383a6754b8362747a2155eb" alt="Synonym Detection screen" width="1524" height="701" data-path="assets/images/5.4/add-synonym.png" />

  <Card title="Query Analytics" class="note-image" href="https://academy.lucidworks.com/query-analytics" cta="Take this course on the LucidAcademy." icon="graduation-cap" iconType="duotone">
    The course for **Query Analytics** focuses on how Fusion provides query analytics to detect and improve underperforming queries.
  </Card>

  {/* // tag::review[] */}

  <LwTemplate />

  ## Reviewing auto-generated synonym pairs

  Synonyms that are automatically generated by the [Fusion 5.2.x and later Synonym Detection job](/docs/5/fusion/reference/config-ref/jobs/synonym-detection) are assigned the following status value:

  * **Pending**

    The confidence level is ambiguous, and the result must be reviewed by a user before it can be deployed.  It will only be moved from the `_query_rewrite_staging` collection to the `_query_rewrite` collection when its status has changed to "Approved" *and* it has been published.

    <Note>  By default, all results from a synonym job are set to "Pending", since there are usually a limited number of synonyms, and synonym expansion can have high impact on relevancy.</Note>

  ### How to review a pending synonym pair result

  1. Navigate to **Relevance** > **Rules** > **Rewrite**.

  2. Select **Synonym** tab. The application displays the **Synonym Detection** screen.

     <Tip>Notice the **Status** facet on the left.  Click **Pending** to view only the items that need review.</Tip>

  3. Click the <InlineImage src="/assets/images/4.2/icons/edit-rule.png" alt="Edit icon" /> icon next to the synonym pair.

  4. In the **Status** column, select either "Approved" or "Denied".

     Where alternative synonyms were detected, you can click **Suggestions** to view and select them as replacements for the displayed synonym pair.

     <Tip>   Although the Confidence field is also editable, changing its value makes no difference.</Tip>

  5. Click the **Close** icon next to the updated synonym pair:

       <img src="https://mintcdn.com/lucidworks/vupE2UCZdg04NdXx/assets/images/4.2/rules-misspelling-close.png?fit=max&auto=format&n=vupE2UCZdg04NdXx&q=85&s=303fd5ee521213901106dd99b0b16a7a" alt="Close a synonym pair" width="445" height="434" data-path="assets/images/4.2/rules-misspelling-close.png" />

  <Note>Approving a synonym pair does not automatically deploy it to the `_query_rewrite` collection.  When you have finished your review, you must click **Publish** to deploy your changes.</Note>

  {/* // end::review[] */}

  {/* // tag::add-new[] */}

  ## Adding new synonym pairs

  You can manually add synonym pairs in addition to any generated by your Fusion release:

  * [Fusion 5.2.x and later Synonym Detection job](/docs/5/fusion/reference/config-ref/jobs/synonym-detection)

  ### How to add a synonym pair

  1. Navigate to **Relevance** > **Rules** > **Rewrite**.
  2. Select **Synonym** tab. The application displays the **Synonym Detection** screen.
  3. At the bottom of the rules list, click the <InlineImage src="/assets/images/4.2/icons/add-rule.png" alt="Add icon" /> icon. A new synonym pair appears at the top of the list.
  4. Enter the query term.

     <Tip>   It is not necessary to set a confidence value.</Tip>
  5. Select the synonym pair’s status, depending on whether you want to deploy it the next time you publish your changes ("Approved") or save it for further review ("Pending").
  6. Click the check mark to save the new synonym pair.

  {/* // end::add-new[] */}

  {/* // tag::publish[] */}

  ## Publishing your changes

  ### How to publish updated synonym pairs

  1. In the **Synonym Detection** screen, click the **PUBLISH** button.

     Fusion prompts you to confirm that you want to publish your changes.
  2. Click **PUBLISH**.

  {/* // Currently this does not update the count of unpublished changes. */}

  <Tip>You can un-publish a query rewrite by changing its status to "denied", then clicking **PUBLISH**.</Tip>

  {/* // I am assuming this is the case. */}

  {/* // end::publish[] */}
</Accordion>

## Synonym types

There are three kinds of search synonyms, depending on the requirements of the search for each specific term.

### Replacement synonyms

Replacements are used to change the query, to replace it with a more standard term or terms. For example:

```bash theme={"dark"}
lucid => lucidworks
```

In this case, "lucid" by itself not an approved term, so there should be no instances where the company name is a partial word.

### One-way expansion synonyms

One-way expansions expand original terms with more standard terms while retaining the original term. However, they do not do the opposite, meaning they do not expand standard terms to the original non-standard terms:

```bash theme={"dark"}
monitor => monitor, display
```

In this case, "display" is the standard term, but "monitor" is the original term.

### Multi-way expansion synonyms

Where each term is considered equally standard, multi-way synonyms expand the query so any items with any of the terms is retrieved:

```csv theme={"dark"}
login,logon,signin,signon
```

This example shows terms that are used interchangeably by authors. For this search engine, there is no need to distinguish among them, and considerable value in increasing recall to find all items discussing this topic. However, other content stores may use them differently.
Note that "logging" and "signing" have specific meanings in many contexts, so they might not be candidates for synonyms.

**Example of synonym expansion:**

Results before synonyms:

<img src="https://mintcdn.com/lucidworks/pcVooZE8fTjtTbXE/assets/images/common/synonyms-query-before-0-matches.png?fit=max&auto=format&n=pcVooZE8fTjtTbXE&q=85&s=4a96fa5cebc0fb5ace20d989ce2ef4da" alt="No results" width="1086" height="608" data-path="assets/images/common/synonyms-query-before-0-matches.png" />

Results after synonyms:

<img src="https://mintcdn.com/lucidworks/pcVooZE8fTjtTbXE/assets/images/common/synonyms-query-after-18-matches.png?fit=max&auto=format&n=pcVooZE8fTjtTbXE&q=85&s=ba62101c8c070d788baf5f8c7bb644c8" alt="Results show" width="1086" height="969" data-path="assets/images/common/synonyms-query-after-18-matches.png" />

Viewing the query using the `debug=true` parameter shows how it is expanded:

```json theme={"dark"}
 "querystring": "logon",
 "parsedquery": "(+DisjunctionMaxQuery((Synonym(_text_:login _text_:logon _text_:signin _text_:signon))))/no_coord",
 "parsedquery_toString": "+(Synonym(_text_:login _text_:logon _text_:signin _text_:signon))",
```

## Multi-word synonyms

**To enable multi-word synonyms in Fusion, create an Additional Parameter stage for disabling the split on whitespace tokenization process (which applies to synonyms only):**

```bash theme={"dark"}
 sow=false
```

Using eDisMax, this allows the new Solr SynonymGraphFilter to create the graph representations of token streams containing overlapping synonyms of varying word counts, and expand the queries with additional terms. If using a less-than sign (\<) with eDisMax, it must be escaped using a backslash.

**Examples:**

```bash theme={"dark"}
 appstudio => app studio
 signup =>signup,sign up
 login,log in,logon,log on,signin,sign in,signon,sign on
```

Multi-word synonyms work just like single-word synonyms, expanding the parsed query with additional query terms. For Solr details, see: [Multi-Word Synonyms: Solr Adds Query-Time Support](https://lucidworks.com/post/multi-word-synonyms-solr-adds-query-time-support//).
