Caching database query results for pager

Hi all,

I have a search function on my website that can be used to perform complex searches on a database. These searches can sometimes return many results so I am displaying them to the user with a CLinkPager. I have noticed that when navigating to different pages within the CLinkPager, the controller function that performs the search is re-executed each time. The problem here is that if the search takes any decent length of time, the user has to endure this delay for each page they click on in the pager. Is this simply just the way it works, or is there anything I can do in terms of caching here (either on the server or client).

Thanks for any help!