I think using SOLR makes more sense: SOLR is absolutely *meant* to do this kind of thing. You are kind of doing a brute-force attack by storing stuff in the database. As far as I know SOLR is also much easier to spread over several processing nodes if CPU becomes an issue. Doesn't SOLR also have a way of storing the results of queries and automatically build up autocomplete stuff?