Enum
Describes how to filter search results based on enum, with the Filter method in Optimizely Search & Navigation.
Use filters to narrow down search results, or use them for database-like queries.Â
You can use the Filter
method to filter enum
and nullable enum
fields in several ways, as shown in the following use cases and examples.
Note
Currently, there is support only for filtering by exact matching of values for
enums
. That is, bitwise comparison forenum
types that have theFlags
attribute is not baked into theMatch
method but must be done explicitly.
Match by value
For exact matching, use the Match
method. The following search matches blog posts whose PublishState
property is a specific enum
value. The LINQ equivalent is Where(x => x.PublishState == PublishState.Published)
.
var searchQuery = client.Search<BlogPost>()
.Filter(x => x.PublishState.Match(PublishState.Published));
Exists
To search for documents where an enum
field has a value, use the Exists
method. The following search finds blog posts that have an Approved
property with a value. In other words, the following code is similar to the LINQ query Where(x => x.PublishState.HasValue)
.
var searchQuery = client.Search<BlogPost>()
.Filter(x => x.PublishState.Exists());
Updated 23 days ago