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 a couple of ways, as shown in the following use cases and examples.
Currently, there is support only for filtering by exact matching of values for
enums. That is, bitwise comparison for
enumtypes that have the
Flagsattribute is not baked into the
Matchmethod but must be done explicitly.
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));
To search for documents where an
enum field has a value, use the
Exists method. The following search finds blog posts that has 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 about 10 hours ago