Powering crawlable pages with search results in NOT a good SEO strategy anymore. I've seen evidence that:
1) Google does not rank pages that use the word "search" in the page title.
2) Having many search result pages crawled can lead Google to believe that your site is "low quality" and get you Panda Penalty.
3) Google will apply a manual penalty to your site for having an "infinite number of pages" based on crawlable search results if a Human a Google takes a close look at your site.
If I were you, I would rename search.php to sitesearch.php and put sitesearch.php in robots.txt. Then take your top search.php?q= urls that are actually bringing in referral traffic and 301 redirect them to the appropriate product page.