A critical vulnerability was discovered in React Server Components (Next.js). Our systems remain protected but we advise to update packages to newest version. Learn More

Graham Carr
Dec 16, 2025
  34
(0 votes)

A day in the life of an Optimizely OMVP - OptiGraphExtensions v2.0: Enhanced Search Control with Language Support, Synonym Slots, and Stop Words

Supercharge your Optimizely Graph search experience with powerful new features for multilingual sites and fine-grained search tuning.

As search continues to be a critical component of any digital experience, I am excited to announce version 2.0 of OptiGraphExtensions - an open-source add-on for managing Optimizely Graph search enhancements directly from the CMS admin interface. This release brings significant new capabilities that give content teams unprecedented control over how search works across different languages and markets.

WHAT'S NEW IN VERSION 2.0

1. Language Routing for Synonyms

One of the most requested features has been proper support for multilingual synonym management. In version 2.0, synonyms can now be configured per language, ensuring that search enhancements are contextually appropriate for each market.

Why does this matter?

Consider a global e-commerce site selling clothing. In English, you might want "jumper" and "sweater" to be synonyms. But in British English, "jumper" means something quite different than in American English - and in other languages, these terms don't translate directly at all.

With language routing, you can now:

- Create language-specific synonym sets (e.g., English synonyms, Swedish synonyms, German synonyms)
- Sync synonyms to Optimizely Graph grouped by language
- Filter and manage synonyms by language in the admin interface
- Ensure search relevance is optimised for each locale

How it works:

When syncing to Optimizely Graph, synonyms are grouped by their assigned language and sent using the language_routing parameter:

    PUT {gatewayUrl}/resources/synonyms?language_routing=en&synonym_slot=ONE

This means your Swedish customers searching for "bil" won't accidentally get results influenced by English synonyms for "car".

2. Synonym Slots for Advanced Configuration

Version 2.0 introduces Synonym Slots - a powerful feature that allows you to maintain multiple synonym configurations per language. Optimizely Graph supports two synonym slots (ONE and TWO), and our add-on now gives you full control over both.

Use cases for Synonym Slots:

- A/B Testing: Test different synonym strategies by using Slot ONE for your control group and Slot TWO for a variant

- Seasonal Campaigns: Keep your standard synonyms in Slot ONE while using Slot TWO for campaign-specific terms

- Department Separation: Use different slots for different product categories or business units

- Gradual Rollout: Test new synonym mappings in Slot TWO before promoting them to Slot ONE

In the Admin Interface:

The synonym management screen now includes a slot selector dropdown, making it easy to:

- Assign new synonyms to either Slot ONE or Slot TWO
- Filter the synonym list by slot
- Sync synonyms to Graph by language AND slot combination

3. Stop Words Management - Brand New Feature

The headline feature of version 2.0 is the introduction of Stop Words Management. Stop words are common, low-value words that search engines typically filter out to improve relevance and performance. Think words like "the", "a", "an", "is", "at", "which", and "on".

Why manage stop words?

While Optimizely Graph has sensible defaults, every business has unique requirements:

- Industry-Specific Terms: A word that's noise in one context might be meaningful in another. "The" might be irrelevant for most searches, but critical for a music site where users search for "The Beatles" or "The Who".

- Language Nuances: Different languages have different common words that should be filtered.

- Performance Optimisation: Fine-tuning stop words can improve both search speed and relevance.

Stop Words Features:

- Language-Specific Configuration: Define different stop words for each language

- Sync to Graph: Push your stop word configuration to Optimizely Graph per language

- Delete All from Graph: Clear all stop words for a language with a single click (useful for resetting to defaults)

- Validation: The system ensures stop words are single words without spaces

- Caching: Intelligent caching with automatic invalidation for optimal performance

Admin Interface:

The new Stop Words management screen provides:

- A clean interface for adding individual stop words
- Language filter dropdown to view stop words by language
- Pagination for sites with extensive stop word lists
- "Sync to Graph" buttons for both all languages and the currently filtered language
- "Delete All from Graph" to remove stop words for a specific language from Optimizely Graph

GETTING STARTED

Installation

Run the following command to install the NuGet package:

   dotnet add package OptiGraphExtensions

Configuration

Add the following to your Program.cs or Startup.cs:

    services.AddOptiGraphExtensions(options =>
    {
        options.ConnectionStringName = "EPiServerDB";
    });

    app.UseOptiGraphExtensions();

Accessing the Admin Interface

Navigate to your CMS admin area and find "Opti Graph Extensions" in the menu. You'll see options for:

- About: Overview and quick links
- Synonyms: Manage synonyms with language and slot support
- Stop Words: Configure stop words per language
- Pinned Results: Control which content appears for specific searches

REAL-WORLD EXAMPLE: MULTILINGUAL E-COMMERCE

Let's walk through a practical example of setting up search enhancements for a multilingual e-commerce site operating in English, Swedish, and German.

Step 1: Configure English Synonyms (Slot ONE)

    Language: en
    Slot: ONE
    Synonyms:
    - laptop, notebook, portable computer
    - phone, mobile, smartphone, cell phone
    - TV, television, telly

Step 2: Configure Swedish Synonyms (Slot ONE)

    Language: sv
    Slot: ONE
    Synonyms:
    - dator, laptop, bärbar dator
    - telefon, mobil, smartphone
    - TV, television

Step 3: Set Up Stop Words

    English stop words:
    the, a, an, is, at, which, on, for, with, to, of

    Swedish stop words:
    och, det, att, i, en, på, är, som, för, med

Step 4: Sync to Graph

Click "Sync All to Graph" on each management screen, or sync per-language for more control.

MIGRATION FROM VERSION 1.X

If you're upgrading from version 1.x, the migration is straightforward:

1. Update the NuGet package to version 2.0

2. Run database migrations - new columns for Slot on synonyms and a new StopWords table will be created automatically

3. Existing synonyms will default to Slot ONE and retain their existing language settings

4. No breaking changes to the API or configuration

CONCLUSION

OptiGraphExtensions v2.0 represents a significant step forward in giving content teams control over their Optimizely Graph search experience. With language routing, synonym slots, and stop words management, you now have the tools to create truly localised, highly relevant search experiences for your users.

The add-on is open source and available on NuGet. I welcome contributions, feedback, and feature requests from the community.

Links:

- NuGet Package: https://www.nuget.org/packages/OptiGraphExtensions/
- Optimizely Graph Stop Words API: https://docs.developers.optimizely.com/platform-optimizely/reference/upsert-stopwordhandler
- Optimizely Graph Synonyms API: https://docs.developers.optimizely.com/platform-optimizely/reference/upsert-synonymhandler

Happy searching!

Dec 16, 2025

Comments

Please login to comment.
Latest blogs
A day in the life of an Optimizely OMVP - Optimizely Opal: Specialized Agents, Workflows, and Tools Explained

The AI landscape in digital experience platforms has shifted dramatically. At Opticon 2025, Optimizely unveiled the next evolution of Optimizely Op...

Graham Carr | Dec 16, 2025

Optimizely CMS - Learning by Doing: EP09 - Create Hero, Breadcrumb's and Integrate SEO : Demo

  Episode 9  is Live!! The latest installment of my  Learning by Doing: Build Series  on  Optimizely Episode 9 CMS 12  is now available on YouTube!...

Ratish | Dec 15, 2025 |

Building simple Opal tools for product search and content creation

Optimizely Opal tools make it easy for AI agents to call your APIs – in this post we’ll build a small ASP.NET host that exposes two of them: one fo...

Pär Wissmark | Dec 13, 2025 |

CMS Audiences - check all usage

Sometimes you want to check if an Audience from your CMS (former Visitor Group) has been used by which page(and which version of that page) Then yo...

Tuan Anh Hoang | Dec 12, 2025

Data Imports in Optimizely: Part 2 - Query data efficiently

One of the more time consuming parts of an import is looking up data to update. Naively, it is possible to use the PageCriteriaQueryService to quer...

Matt FitzGerald-Chamberlain | Dec 11, 2025 |