It's all about your app and users expectations on it. You definitely shouldn't use client-side search if you have:
- Short-living data which couldn't be cached (like list of users who are online).
- Huge dataset which a) couldn't be cached or b) wouldn't be cached (most visitors woudn't use search). But the size limit depends on the app.
- Complex computation intensive search (like full-text search).
In other cases it can work. And searching even millions of data records could run under 100 ms, what is faster than common network delay required to receive a response from server.
Advantages of client search:
- fast: no network latency.
- powerful queries: query can use all JS capabilities with engine optimization advantages.
Disadvantages:
- load full dataset (critical on huge amounts of data).
- require synchronization strategy: full reload, partial updates, CRDT, etc.