Server, in my opinion.
A client-side cacheing technique will have one of two negative outcomes depending on how you do it:
- If you cache only what the user has searched for before, the cache won't be of any use unless the user performs exactly the same search again.
- If you cache the whole dataset the user will have to download the whole thing, and that will slow your site down and incur bandwidth expenses.
The easiest thing you can do is just add appropriate indexes to the table you're searching. That will be sufficient for 99% of possible applications and should be the first thing you do, before you think about cacheing at all.
Apologies if I've pitched this answer below your level, I'm not sure exactly what you're doing, what you're planning to cache or how much experience you have.