Filter facets
Introduction
A filter facet returns the count for all documents in the search result that match a filter. The filter can be an expression just like when using the Filter method. That means it can be anything ranging from a single criterion to a very complex criterion made up of multiple sub criteria.
Examples
To request a filter facet we can use the FilterFacet method which has two parameters, a name and a filter or filter expression. The resulting facet can be retrieved 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, which is the number of documents that match both the rest of the search query (if any) and the filter.
Below is a simple example illustration a search for all products where we request, and retrieve 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;
Last updated: Jun 10, 2014