29. A method performed by a server, the method comprising: receiving, by of one or more processors of the server, historical query data, to identify refinement queries, that are refinements of a particular search query, where the refinement queries have each been received as a refinement of the particular search query a particular quantity of times; determining, for each one of the refinement queries and by the one or more processors of the server, a quantity of times that the refinement query was received as the refinement of the particular search query; clustering, by the one or more processors of the server, a plurality of refinement queries to form a plurality of clusters; receiving, by the server, a query from one or more client devices, where the received query matches the particular search query; identifying, by the one or more processors of the server a refinement query from each of at least one of the clusters from the formed plurality of clusters, where the identifying includes: identifying, from a particular one of the clusters, a particular refinement query, associated with the particular one of the clusters, that corresponds to a highest determined quantity, from the determined quantity of times that the particular refinement query, of refinement queries associated with the particular one of the clusters, has been received as the refinement of the particular search query; and sending, in response to the received query and by the server, the identified particular refinement query, from each of the at least one of the clusters from the formed plurality of clusters, to the one or more client devices.
29. A method performed by a server, the method comprising: receiving, by of one or more processors of the server, historical query data, to identify refinement queries, that are refinements of a particular search query, where the refinement queries have each been received as a refinement of the particular search query a particular quantity of times; determining, for each one of the refinement queries and by the one or more processors of the server, a quantity of times that the refinement query was received as the refinement of the particular search query; clustering, by the one or more processors of the server, a plurality of refinement queries to form a plurality of clusters; receiving, by the server, a query from one or more client devices, where the received query matches the particular search query; identifying, by the one or more processors of the server a refinement query from each of at least one of the clusters from the formed plurality of clusters, where the identifying includes: identifying, from a particular one of the clusters, a particular refinement query, associated with the particular one of the clusters, that corresponds to a highest determined quantity, from the determined quantity of times that the particular refinement query, of refinement queries associated with the particular one of the clusters, has been received as the refinement of the particular search query; and sending, in response to the received query and by the server, the identified particular refinement query, from each of the at least one of the clusters from the formed plurality of clusters, to the one or more client devices. 31. The method of claim 29 , further comprising: storing a plurality of query/refinement query associations prior to receiving the query from the one or more client devices.