HomeDev GuideAPI Reference
Dev GuideAPI ReferenceLegal TermsDev CommunityOptimizely AcademySubmit a ticketLog In
Dev Guide

Filter facets

Describes how facets based on filters are used in Optimizely Search & Navigation.

Facets group documents based on criteria, such as specific terms or date ranges. 

A filter facet returns a count of search results that match a filter. The filter can be an expression used with the Filter method, ranging from a single criterion to complex criteria of multiple sub-criteria.

To request a filter facet, use the FilterFacet method has two parameters: name and filter or filter expression. You retrieve the resulting facet from the search results object using a method with the same name but with only a name parameter. The returned object has a single property, Count, the number of documents matching the search query and filter.

The following example shows a sample search for products that requests and retrieves the value from two filter facets.

var result = client.Search<Product>()
  .FilterFacet("In stock", x => x.InStock.Match(true))
  .FilterFacet("In stock on sale",
    x => x.InStock.Match(true) & x.OnSale.Match(true))
  .GetResult()

int inStock = result.FilterFacet("In stock").Count;

int inStockAndOnSale = result
  .FilterFacet("In stock on sale").Count;