If the search is unchanged, it won’t be run again.
It’s not particularly clear why you’re setting states to a list of results also - you may have better results with Display list in a Repeating Group if you’re enabling click to search functionality (as opposed to updating the search as soon as they change a filter).
Searches have to be server side, because it searches the database, and it’s self-evident that that can only happen on the server.