1. A method comprising: receiving, by one or more devices, a search query; identifying, by the one or more devices, a plurality of subsequent search queries that were previously received after the search query, the plurality of subsequent search queries being refinements of the search query; identifying, by the one or more devices, a first quantity of terms that occur in a first set of documents associated with a first subsequent search query of the plurality of subsequent search queries, identifying a respective weight associated with each term of the first quantity of terms that occur in the first set of documents; generating, based on identifying the respective weight associated with each term of the first quantity of terms, a term vector for each document in the first set of documents; the first quantity of terms being based on the search query; identifying, by the one or more devices, a second quantity of terms that occur in a second set of documents associated with a second subsequent search query of the plurality of subsequent search queries, identifying a respective weight associated with each term of the second quantity of terms that occur in the second set of documents; generating, based on identifying the respective weight associated with each term of the second quantity of terms, a term vector for each document in the second set of documents; the second quantity of terms being based on the search query; selecting, by the one or more devices and based on the identified first quantity of terms and the identified second quantity of terms, the first subsequent search query or the second subsequent search query; and providing, by the one or more devices, the selected first subsequent search query or the selected second subsequent search query as a refinement of the search query.