Querying examples
This topic describes how to work with queries in Episerver Find, as a replacement for the FindPagesWithCriteria method in Episerver CMS.
Querying scenarios
In addition to providing great, near-real-time search, Episerver Find can solve other querying needs for which you previously used the FindPagesWithCriteria method. The examples below illustrate common querying scenarios specific to Episerver 7/7.5 CMS. See Searching and Filtering for more filtering examples.
Filtering by category
int categoryId = 3; //Category to match
var pages = SearchClient.Instance.Search<PageData>()
.Filter(x => x.Category.Match(categoryId))
.GetContentResult();
Filtering by Author/ChangedBy
var pages = SearchClient.Instance.Search<PageData>()
.Filter(x => x.ChangedBy.Match("Zlatan"))
.GetContentResult();
Filtering by publish date
The example below finds pages published in October 2011.
var pages = SearchClient.Instance.Search<PageData>()
.Filter(x => x.StartPublish.MatchMonth(2011, 10))
.GetContentResult();
var pages = SearchClient.Instance.Search<PageData>()
.Filter(x => x.StartPublish.Before(new DateTime(2011, 10, 1)))
.GetContentResult();
Filtering by page type
When using typed content, the easiest way to filter by content type is use the Client Search method and specify the desired type in the type parameter. However, in that case, pages of page types inheriting from the specified type are also matched. In other situations, you may not know what type to filter by until at runtime. In both cases, you can filter via IContent.ContentTypeID.
int contentTypeId = 42;
var pages = SearchClient.Instance.Search<IContent>()
.Filter(x => x.ContentTypeID.Match(contentTypeId))
.GetContentResult();
Filtering by Site ID
In an enterprise scenario with multiple sites, all sites use one index. To enable fltering by site ID, the return value of an IContent extension method, SiteId, is indexed. Use SiteId to filter for content from a specific site.
var content = SearchClient.Instance.Search<IContent>()
.Filter(x => x.SiteId().Match("MySiteId"))
.GetContentResult();
Related topics
Last updated: Nov 16, 2015