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 generates one.
The code below 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.