HomeGuidesAPI Reference
Submit Documentation FeedbackJoin Developer CommunityOptimizely GitHubOptimizely NuGetLog In

The Optimizely Search & Navigation integration builds on a .NET-based client API, adding functionality for automatically indexing objects, and methods for filtering, retrieving, and caching results. 

## Installation

CMS 12 and Commerce 14

See [Installing Optimizely .NET5](🔗).

Integration components including the .NET API are installed as NuGet packages available in the Optimizely NuGet feed, see [Installing Optimizely updates (CMS 11 and Commerce 13)](🔗).

The following packages are used for Search & Navigation-specific integrations:

  • _Episerver.Find.Cms_ – Integration of Find REST API with Optimizely Content Management System (CMS).

  • _EPiServer.Find_ – The .NET client API for the Find REST API (installed with _EPiServer.Find.Cms_).

  • _EPiServer.Find.Framework_ – General integration components for the Find REST API (installed with _EPiServer.Find.Cms_).

  • _EPiServer.Find.Cms.AttachmentFilter_ – File type parser for CMS attachments.

  • _EPiServer.Commerce.FindSearchProvider_ – Integration components for Optimizely Customized Commerce, see [Commerce integration](🔗).

  • _EPiServer.Find.Commerce_ – Integration components for Optimizely Customized Commerce, see [Commerce integration](🔗).

  • _EPiServer.Find.Personalization_ – Integration components for Personalized Search & Navigation.

Reference needed assemblies in your project, and add the [standard configuration for the .NET API to web.config](🔗).


f you installed Optimizely Search & Navigation with a sample site through the Visual Studio extensions, the integration with CMS is automatically set up.

## SearchClient.Instance

When working with the general .NET API, you typically create an instance of the `IClient` class using the `Client.CreateFromConfig` method. Following the general development pattern, the Optimizely integration provides a singleton instance in the form of the `SearchClient` class and its `Instance` property. The returned instance is a regular `IClient`, but some modifications are made to it at start up. In other words, when working with CMS and Search & Navigation, be sure to use `SearchClient.Instance`.


Differences between the authentication mechanism of _EPiServer.ServiceAPI_ and _EPiServer.Find_ may lead to the incorrect functioning of user authentication. To avoid these problems, it is recommended to install _EPiServer.ServiceAPI_ in a separate application.