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 theFind
section. This applies to your request whenever you callGetResult
/GetResultAsync
orGetContentResult
/GetContentResultAsync
.- The
DefaultSearchCacheDuration
is replaced byStaticallyCacheFor
if set.- If you do not set either
StaticallyCacheFor
orDefaultSearchCacheDuration
, your search request is cached in 10 minutes by default. You can remove the default value by settingDefaultSearchCacheDuration: 0
.
Related blog post:Â Common caching pitfalls
Updated 10 days ago