Disclaimer: This website requires Please enable JavaScript in your browser settings for the best experience.

HomeDev GuideRecipesAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunityOptimizely AcademySubmit a ticketLog In
Dev Guide

Query caching

Describes caching of search results in Optimizely Search & Navigation, and how to set the time interval for how long search results are cached.

Query caching is useful, for example, to make search-based implementations more resilient. Search requests can be cached for a certain duration using the StaticallyCacheFor method, which accepts a timespan. No cache key is required because the search request will generate one.

The following code returns a previously cached result or executes the query and caches the result for five minutes.

var result = client.Search<BlogPost>()
    .StaticallyCacheFor(TimeSpan.FromMinutes(5))
    .GetResult();

You can also cache results with a dependency (System.Web.Caching.Dependency) using an overload to the StaticallyCacheFor method.

📘

Note

From Episerver.Find 16.3.0, you can configure the default cache for search requests.

  • Add DefaultSearchCacheDuration (in seconds) to the Find section. This applies to your request whenever you call GetResult/GetResultAsync or GetContentResult/ GetContentResultAsync.
  • The DefaultSearchCacheDuration is replaced by StaticallyCacheFor if set.
  • If you do not set either StaticallyCacheFor or DefaultSearchCacheDuration, your search request is cached in 10 minutes by default. You can remove the default value by setting DefaultSearchCacheDuration: 0.

Related blog post: Common caching pitfalls