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.
NoteFrom
Episerver.Find16.3.0, you can configure the default cache for search requests.
- Add
DefaultSearchCacheDuration(in seconds) to theFindsection. This applies to your request whenever you callGetResult/GetResultAsyncorGetContentResult/GetContentResultAsync.- The
DefaultSearchCacheDurationis replaced byStaticallyCacheForif set.- If you do not set either
StaticallyCacheFororDefaultSearchCacheDuration, 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 about 2 months ago