1. A computer-implemented method comprising: determining a first search results score associated with first search results obtained for a search query that was obtained by a user, wherein the first search results score is based on (i) a respective rank of each first search result, and (ii) a respective first popularity score associated with each first search result; revising the search query using a query revision rule to determine a revised search query; determining a second search results score associated with second search results obtained for the revised search query, wherein the second search results score is based on (i) a respective rank of each second search result, and (ii) a respective second popularity score associated with each second search result; comparing the first search results score with the second search results score; based on the comparison of the first search results score with the second search results score, storing the query revision rule in a collection of rules that are used to revise future search queries; and using one or more rules in the stored collection of rules, which includes the query revision rule, to revise a new search query.