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 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 Find caching pitfalls
Updated 3 months ago