16. A non-transitory computer-readable storage medium encoded with a computer program, comprising computer-executable instructions that when executed by one or more computers cause the one or more computers to provide graphical user interfaces comprising filtered flight itineraries, the computer-executable instructions comprising: computer-executable instructions to receive a flight search query, the flight search query including a plurality of parameters; computer-executable instructions to determine 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: computer-executable instructions to determine a feature vector based on values of one or more features of the itinerary, and computer-executable instructions to assign a weight for each of the one or more features of the feature vector; computer-executable instructions to cluster, 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 flight search query; computer-executable instructions to generate 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; computer-executable instructions to transmit, to a user computing device, instructions to display a graphical interface via the user computing device comprising the plurality of itineraries that satisfy the flight search query and the one or more primary filters for filtering the plurality of itineraries; computer-executable instructions to receive, 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: computer-executable instructions to re-cluster the itineraries of the plurality of itineraries that satisfy the selected one or more primary filters to generate one or more secondary filters, and computer-executable instructions to transmit, 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.
16. A non-transitory computer-readable storage medium encoded with a computer program, comprising computer-executable instructions that when executed by one or more computers cause the one or more computers to provide graphical user interfaces comprising filtered flight itineraries, the computer-executable instructions comprising: computer-executable instructions to receive a flight search query, the flight search query including a plurality of parameters; computer-executable instructions to determine 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: computer-executable instructions to determine a feature vector based on values of one or more features of the itinerary, and computer-executable instructions to assign a weight for each of the one or more features of the feature vector; computer-executable instructions to cluster, 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 flight search query; computer-executable instructions to generate 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; computer-executable instructions to transmit, to a user computing device, instructions to display a graphical interface via the user computing device comprising the plurality of itineraries that satisfy the flight search query and the one or more primary filters for filtering the plurality of itineraries; computer-executable instructions to receive, 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: computer-executable instructions to re-cluster the itineraries of the plurality of itineraries that satisfy the selected one or more primary filters to generate one or more secondary filters, and computer-executable instructions to transmit, 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. 19. The non-transitory computer-readable storage medium of claim 16 , wherein each cluster comprises an associated quality score.