1. A method comprising: receiving a search query from a user during a user session; obtaining a plurality of prior search queries by the user received during the user session; generating a plurality of candidate query rewrites, wherein the candidate query rewrites are derived from the search query and the plurality of prior search queries by the user; scoring each candidate query rewrite, wherein scoring each candidate rewrite includes applying a plurality of scoring factors including a quality measure for each candidate query rewrite, and wherein the quality measure is based on an analysis of search results responsive to the candidate query rewrite; selecting a top scoring candidate query rewrite in response to determining that the score satisfies a threshold value; and providing search results responsive to the selected candidate query rewrite.