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

nguyen.nguyen
Mar 19, 2024
  2910
(0 votes)

Introducing Optimizely Graph indexing modes for CMS Content properties

In the current release of Optimizely Graph CMS integration packages, we introduced a new feature called indexing modes for CMS content properties, you can read how to configure the indexing modes for individual properties here.

The indexing modes can be set to a property in a typed content model by adding a C# attribute to the property. At the time of this writing, only typed models are supported and support for untyped models may come in the future.

The two available indexing modes at the moment are

  • OutputOnly: the property will be stored in the content in Optimizely Graph, however it cannot be used to filter contents, it will not be possible to find the content by the values of the property using fulltext search, either (AKA not searchable).
  • Default: the property can be retrieved, can be used to filter contents (using where), but not searchable.

An example of such configuration is

[GraphProperty(PropertyIndexingMode.OutputOnly)]
[Searchable]
public virtual string Title { get; set; }

Notice how the property is set to be searchable by the attribute [Searchable] in CMS, however the indexing mode will override the [Searchable] attribute and the Title property ends up not searchable and not filterable.

What is the motivation for these indexing modes?

By default, most properties are searchable and filterable when indexed to Optimizely Graph, however for most of the properties in contents, being able to filter or search by them is not necessary. To make properties filterable and searchable, extra processing and data need to be handled by Optimizely Graph, this affects performance and costs.

So as a CMS/Optimizely Graph customer, it is of your interest to set most of your properties to OutputOnly mode, so that the values can be retrieved and displayed, while reducing load in Optimizely Graph and as a result improving the performance in both indexing and querying operations. Optimizely Graph also has some limitations on the maximum number of properties that are searchable and indexable, so if you run into this issue setting most of your properties to OutputOnly will solve it.

The feature should be available in Optimizely Graph CMS integration package version 3.6.0. Please check it out.

Mar 19, 2024

Comments

Mark Hall
Mark Hall Mar 20, 2024 03:38 AM

what about for headless implementations with no strongly typed content types.

Mar 20, 2024 06:37 AM

For the time being we are supporting typed models and no support for untyped models is available yet.

If you don't run into issues with the limit of maximum number of filterable fields, then it's still fine to have most fields filterable at the moment. We may have support for untyped models in the future.

Jon Williams
Jon Williams Dec 24, 2025 03:38 PM

Thanks for posting this, Nguyen.
 

It appears that the link in the first paragraph of this article has now moved and can be found here: https://docs.developers.optimizely.com/content-management-system/docs/install-and-configure-optimizely-graph-on-your-site#property-index-modes 

Please login to comment.
Latest blogs
Optimizely Graph Best Practices - Content Modelling and Querying

Introduction With the Mando Group team having worked extensively with Optimizely Graph over the last 12+ months, we have uncovered a number of best...

Jon Williams | Jan 16, 2026

ScheduledJob overview Blazor component

I have always felt that the admin UI for scheduled jobs in Optimizely is harder to use than it needs to be. To check a job you have to go into admi...

Per Nergård (MVP) | Jan 15, 2026

Our OPAL solution for Innovation Challenge: Persona based Content Optimization

  Introduction Marketing success depends on one core principle : connection. We have may seen many marketing campaigns fail because they fail make...

Ratish | Jan 15, 2026 |

A day in the life of an Optimizely OMVP: Introducing Optimizely Style Manager

Managing display templates in Optimizely CMS (SaaS) has traditionally required working directly with the REST API or managing JSON configuration...

Graham Carr | Jan 13, 2026

Content modelling in Optimizely: Why your initial delivery decisions matter more than you think

The architectural shortcuts you take in sprint zero don't just create technical debt, they define whether your platform scales gracefully or crumbl...

Tom Robinson | Jan 12, 2026 |

A day in the life of an Optimizely OMVP: Introducing Query Library and Request Logs: Two Powerful New Features for OptiGraphExtensions v5

I am excited to announce two new features for OptiGraphExtensions v5 that give Optimizely CMS administrators greater visibility and control over...

Graham Carr | Jan 12, 2026