Hide menu Last updated: Aug 10 2017
Area: Episerver Find Applies to versions: 12 and higher
Other versions:

Synonyms

Use synonyms to improve search results by adding uni- or bi-directional relationships between phrases. This topic explains how to manage synonyms programmatically.

To learn how to add synonyms through the administrative interface, see http://webhelp.episerver.com/latest/find/synonyms.htm.

Using Synonyms

To enable search results to use synonyms, use the UsingSynonyms extension method for IQueriedSearch in EPiServer.Find namespace:

var results = client.UnifiedSearchFor("bike").UsingSynonyms().GetResult();

Managing Synonyms

A synonym has an id to use on update and removal. The id is defined by

  • the phrase (a)
  • the synonymous phrase (b)
  • whether relationship is bidirectional; meaning searches for b also return results for a
  • tags for categorizing synonyms, for example, based on sites and languages

Client Extension

The synonyms client is made available through the extension method Synonyms on the Find client.

using EPiServer.Find.Framework;
using EPiServer.Find.Optimizations;

var client = SearchClient.Instance;

Methods

Add

var result = client.Optimizations().Synonyms().Add(new Synonym("bike", " bicycle ", true));
var synonymId = result.Id;

 

In this example, bike is the phrase, bicycle is the synonym, and true indicates that the relationship is bidirectional.

Get

To get a synonym, pass its id to the Get method of the Synonyms client.

var result = client.Optimizations().Synonyms().Get(synonymId);

Delete

To delete a synonym, pass its id to the Delete method of the Synonyms client.

var result = client.Optimizations().Synonyms().Delete(synonymId);

List

To retrieve synonyms, use the List method, which has size and from arguments to allow paging.

var size = 10;
var from = 120;
var result = client.Optimizations().Synonyms().List(size, from);

Size indicates the number of synonyms to return per page. From indicates the synonym at which to start the list.
The default size value is 10, and the default from value is 0. If you run client.Synonyms().List() with no parameters, it returns the first 10 synonyms.

Examples

  • client.Synonyms().List(5) returns the first 5 synonyms.
  • client.Synonyms().List(5, 5) returns the second page of the synonym list, 5 synonyms starting with sixth result (it skips the first 5).
  • client.Synonyms().List(5, 10) returns the third page of the synonym list: 5 synonyms starting from the eleventh result (it skips the first 10).

CommandActions argument

The Add, Get, Delete and List methods have overloads for passing a commandAction, which is run with the due command as an argument just before command execution.

var result = client.Optimizations().Synonyms().Delete(synonymId, command  => _log.Debug(command.Id));

Comments