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!
Comments