HomeDev GuideAPI Reference
Dev GuideAPI ReferenceLegal TermsDev 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.

Default caching for search request

From Episerver.Find 16.3.0, you can config the default cache for search requests by adding 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 Find caching pitfalls