I have 14 pages of products on my site. Each page has 10 products. The product pages are powered by Ajax, and I have a filter results feature which lets them only show products with higher ratings, particular features, etc. These results in an unimaginable number of different URLs (thanks to the query variables), and I believe it may be causing duplicate content issues since these unique URLs are being indexed. This is what I have made the paginated pages URL look like:www.site.com?page=2www.site.com?page=3And so on until page 14. Some of the URLs being indexed with query variables look like this:site.com?price[1500-1999]=on&technology[good]=onI'm wondering what I should do about these dynamically generated pages. I did not believe Google would index them, but since they are, should I apply the canonical page to any page which deviates from the URL structure I have above (www.site.com?page=2) for example. 
URL query variables and rel=canonical
url;duplicate content;canonical url
I think what you want to do is go into Google Webmaster Tools and configure your page parameter under Configuration -> URL Parameters as Yes: Changes content  and set the effect to Paginates. That will let Google know that that particular parameter is used for Pagination, so it should crawl all URLs with that parameter.You could also add rel=next and rel=prev tags to make it even clearer. But I wouldn't canonical the sub pages to one main URL.