Caching provides faster response to user queries but it gets challenging when you start to deal with dynamic data.
One of the tricks of caching is knowing when to expire what’s in the cache. You don’t want to keep showing results for a query when the results have actually changed; for example, maybe there’s a new snippet, or a URL has changed, or a new result has entered the top ten results, or there’s some breaking news.
The problem I (might) have is similar to eBay’s - I need to combine many different items dynamically based on the search keyword.