1. A method to provide graphical user interfaces comprising filtered flight itineraries, comprising: receiving, by one or more computing devices, a flight search query, the flight search query comprising a plurality of parameters; determining, by the one or more computing devices, a plurality of itineraries that satisfy the parameters of the flight search query, wherein each itinerary comprises values of particular features; for each itinerary of the plurality of itineraries that satisfy the parameters of the flight search query: determining, by the one or more computing devices, a feature vector based on values of one or more features of the itinerary, and assigning, by the one or more computing devices, a weight for each of the one or more features of the feature vector; clustering, by the one or more computing devices and based on the feature vectors of the plurality of itineraries and the assigned weight for each of the one or more features in each of the feature vectors, the plurality of itineraries into a plurality of clusters, wherein each of the plurality of clusters is generated to have particular values for one or more of a plurality of features associated with the plurality of itineraries that satisfy the parameters of the flight search query; generating, by the one or more computing devices, one or more primary filters corresponding to one or more of the plurality of clusters, wherein each primary filter has the particular values of the one or more features identified by the corresponding cluster; transmitting, by the one or more computing devices and to a user computing device, instructions to display a graphical user interface comprising the plurality of itineraries that satisfy the flight search query and the one or more primary filters for filtering the plurality of itineraries; receiving, by the one or more computing devices and from the user computing device, an input from the user computing device indicating a selection of one or more primary filters in the graphical user interface; and in response to receiving the input from the user computing device indicating the selection of one or more primary filters in the graphical user interface: re-clustering, by the one or more computing devices, the itineraries of the plurality of itineraries that satisfy the selected one or more primary filters to generate one or more secondary filters, and transmitting, by the one or more computing devices to the user computing device, instructions to update the display of the graphical user interface to display the one or more secondary filters and itineraries that satisfy the selected one or more primary filters.
1. A method to provide graphical user interfaces comprising filtered flight itineraries, comprising: receiving, by one or more computing devices, a flight search query, the flight search query comprising a plurality of parameters; determining, by the one or more computing devices, a plurality of itineraries that satisfy the parameters of the flight search query, wherein each itinerary comprises values of particular features; for each itinerary of the plurality of itineraries that satisfy the parameters of the flight search query: determining, by the one or more computing devices, a feature vector based on values of one or more features of the itinerary, and assigning, by the one or more computing devices, a weight for each of the one or more features of the feature vector; clustering, by the one or more computing devices and based on the feature vectors of the plurality of itineraries and the assigned weight for each of the one or more features in each of the feature vectors, the plurality of itineraries into a plurality of clusters, wherein each of the plurality of clusters is generated to have particular values for one or more of a plurality of features associated with the plurality of itineraries that satisfy the parameters of the flight search query; generating, by the one or more computing devices, one or more primary filters corresponding to one or more of the plurality of clusters, wherein each primary filter has the particular values of the one or more features identified by the corresponding cluster; transmitting, by the one or more computing devices and to a user computing device, instructions to display a graphical user interface comprising the plurality of itineraries that satisfy the flight search query and the one or more primary filters for filtering the plurality of itineraries; receiving, by the one or more computing devices and from the user computing device, an input from the user computing device indicating a selection of one or more primary filters in the graphical user interface; and in response to receiving the input from the user computing device indicating the selection of one or more primary filters in the graphical user interface: re-clustering, by the one or more computing devices, the itineraries of the plurality of itineraries that satisfy the selected one or more primary filters to generate one or more secondary filters, and transmitting, by the one or more computing devices to the user computing device, instructions to update the display of the graphical user interface to display the one or more secondary filters and itineraries that satisfy the selected one or more primary filters. 6. The method of claim 1 , wherein the clustering comprises assigning, by the one or more computing devices, a feature vector to each itinerary and clustering based on the feature vectors.