Get started with Optimizely Graph for CMS 13
Learn how to set up and use Optimizely Graph with CMS 13, including SDK configuration, search modes, and modern search capabilities for migration scenarios.
Learn how to set up and use Optimizely Graph with CMS 13, including enabling the .NET SDK, selecting the appropriate search mode, and implementing modern search capabilities to support migration from Optimizely Search & Navigation.
NoteIf you are already live with Optimizely Graph on Optimizely Content Management System (CMS 12), see Project migration for CMS 12 with Optimizely Graph.
Prerequisites
Ensure that you have:
- A CMS 13 instance and environment configured.
- Optimizely Graph connected to your CMS 13 instance (see Enable Graph service to sync DAM and CMS).
Request a developer instance
ImportantDeveloper instances last only 30 days. You should wait until you need it to request one.
To request a developer account, any customers or partner can open a support ticket and include the following information:
- First name
- Last name
- Email address
- Organization name
- Region (APAC, EMEA, UAE, or US)
The Engineering team creates the account and provides the credentials through the support ticket. The index is automatically removed after 30 days. After expiration, you must request a new account to continue access.
Enable Optimizely Graph
Add the following to your startup configuration to activate the integration:
// using Optimizely.Graph.DependencyInjection;
services.AddContentGraph();Understand the SDK purpose
The .NET (C#) SDK supports developers who are migrating from Optimizely Search & Navigation to Optimizely Graph. It provides patterns to implement search and content retrieval using a Graph-based approach.
Learn more about the .Net (C#) SDK.
Choose a content search mode
Optimizely Graph supports multiple search modes. Select the one that fits your use case.
Content search
Use this mode when you need CMS-integrated results
- Provides compile-time type safety for filters.
- Loads data using
IContentLoader. - Returns
IContentinstances. - Honors content permissions and URLs.
Typed search
Use this mode for structured external or global search scenarios.
- Deserializes responses into defined contracts.
- Provides compile-time type safety for filters.
- Suitable for global search pages and advanced listings.
Untyped search
Use this mode for maximum flexibility.
- Accepts types and fragments as strings.
- Returns raw
JsonElementresults. - Does not provide compile-time type safety.
Implement search functionality
Optimizely Graph enables advanced search capabilities across all modes:
- Full-text search with highlighted terms.
- Filters, operators, and logical connectors.
- Fuzzy matching.
- Extension methods for defining filters.
- Locale and ID-based queries.
- Sorting, including semantic sorting.
- Cursor-based pagination.
- Autocomplete and query suggestions.
- Variations, facets, and boosting.
- Pinned results.
Configure security and performance
Security
- Integrated tracking that respects "Do Not Track" settings.
- Authentication using a single API key by default.
- Optional HMAC authentication.
- Authorization with
FilterForVisitor, usingIPrincipaland locale. - Option to include deleted documents
Performance and observability
- Built-in metrics for
HttpClient - Observability and query categorization
- Optional caching support
Understand SDK limitations
The SDK does not fully replicate all features from Search & Navigation.
Not supported:
- Full Language Integrated Query (LINQ) provider
- Direct link support
- Use
IContentLoader.GetAncestors() - Recursive directives
- Use
IContentLoader.Get()
- Use
- Routing
- Use
IUrlResolver.Route()andContentLoader.Get()
- Use
- Single document retrieval by ID
- Filtering on the current site
- Multi-search
Next steps
- Learn more about Migrating from Optimizely Search & Navigation to Optimizely Graph.
Updated 2 days ago
