Default caching on search request on Search & Navigation
For the better performance, Search & Navigation .Net client has provided StaticallyCacheFor method for caching your search result in a specific of time span. It really useful when you perform a real-time search response to your users without a request.
We now including a default caching duration for your search request in-case StaticallyCacheFor make your code more cumbersome 😃
This can be done by setting DefaultSearchCacheDuration (in seconds) in Find section and it applies to all request that calling to GetResult or GetContentResult (in both asynchronous and synchronous version of API).
"Find": {
"DefaultIndex": "your_index",
"ServiceUrl": "https://service.find.episerver.net/your_private_key",
"DefaultSearchCacheDuration": 300
}
In the example above you config for default caching in 5 minutes, but you can overide this default value for some specific request by using StaticallyCacheFor, this will replace default value as highest priority.
For example:
//this response will cache the search result by 5 minutes as DefaultSearchCacheDuration is set to 300 seconds.
var responseCacheInDefault = await SearchClient.Instance
.Search<IContent>().For("samsung")
.GetResultAsync();
//but this response will be cached in 15 minutes
var responseCacheOverridden = await SearchClient.Instance
.Search<IContent>().For("iphone")
.StaticallyCacheFor(TimeSpan.FromMinutes(15))
.GetResultAsync();
If you don't have DefaultSearchCacheDuration in the Find config and don't also set StaticallyCacheFor, your search response will automatically cache in 10 minutes.
But maybe you ask for "what if I don't need any default search cache?", just set DefaultSearchCacheDuration to zero.
For more details please go to our documents for developers.
Please don't hesitate to contact us if you have any question or feedback.
Comments