1. A method performed by one or more server devices, the method comprising: receiving, by the one or more server devices, a first search query; receiving, by the one or more server devices, after receiving the first search query, a second search query that is different from the first search query; identifying, by one or more processors of the one or more server devices, based on a set of predetermined criteria, that the second search query is a refinement query of the first search query; collecting, by the one or more processors of the one or more server devices, a plurality of refinement query suggestions for the first search query, where the plurality of refinement query suggestions includes the second search query; counting, by the one or more processors of the one or more server devices, a quantity of times that each refinement query suggestion, of the plurality of refinement query suggestions, was previously received and identified, by the one or more server devices, as a refinement of a query that matches the first search query; storing the plurality of refinement query suggestions in a memory associated with the one or more server devices; clustering, by the one or more processors of the one or more server devices, the stored plurality of refinement query suggestions to form a plurality of clusters; identifying, by the one or more processors of the one or more server devices, a particular cluster, of the formed plurality of clusters, based on the plurality of refinement query suggestions within the particular cluster; selecting, by the one or more processors of the one or more server devices, from within the identified particular cluster, at least one potential refinement query suggestion, where the selecting includes: identifying that a quantity of times, that the at least one potential refinement query suggestion was received and identified as a refinement of the first search query, is higher than quantities of times that other refinement query suggestions, within the identified particular cluster, were received and identified as refinements of the first search query; and transmitting, by a communication interface of the one or more server devices, the selected at least one potential refinement query suggestion to a client associated with a user, the transmitting occurring in response to receiving, from the user, a third search query that matches the first search query.
1. A method performed by one or more server devices, the method comprising: receiving, by the one or more server devices, a first search query; receiving, by the one or more server devices, after receiving the first search query, a second search query that is different from the first search query; identifying, by one or more processors of the one or more server devices, based on a set of predetermined criteria, that the second search query is a refinement query of the first search query; collecting, by the one or more processors of the one or more server devices, a plurality of refinement query suggestions for the first search query, where the plurality of refinement query suggestions includes the second search query; counting, by the one or more processors of the one or more server devices, a quantity of times that each refinement query suggestion, of the plurality of refinement query suggestions, was previously received and identified, by the one or more server devices, as a refinement of a query that matches the first search query; storing the plurality of refinement query suggestions in a memory associated with the one or more server devices; clustering, by the one or more processors of the one or more server devices, the stored plurality of refinement query suggestions to form a plurality of clusters; identifying, by the one or more processors of the one or more server devices, a particular cluster, of the formed plurality of clusters, based on the plurality of refinement query suggestions within the particular cluster; selecting, by the one or more processors of the one or more server devices, from within the identified particular cluster, at least one potential refinement query suggestion, where the selecting includes: identifying that a quantity of times, that the at least one potential refinement query suggestion was received and identified as a refinement of the first search query, is higher than quantities of times that other refinement query suggestions, within the identified particular cluster, were received and identified as refinements of the first search query; and transmitting, by a communication interface of the one or more server devices, the selected at least one potential refinement query suggestion to a client associated with a user, the transmitting occurring in response to receiving, from the user, a third search query that matches the first search query. 16. The method of claim 1 , further comprising: assigning a score to each clustered stored plurality of refinement query suggestions based on the identified quantity of times that each refinement query suggestion, within each clustered stored plurality of refinement query suggestions, was received as the refinement of the query that matches the first search query.