1. A method comprising: receiving a flight search query, the flight search query including a plurality of parameters; determining a plurality of itineraries that satisfy the parameters of the flight search query; clustering the plurality of itineraries into a plurality of clusters, wherein the clusters depend upon values of particular features of the plurality of itineraries that satisfy the flight search query, and wherein each cluster is generated to have particular values for one or more features of a plurality of features; generating one or more filters corresponding to one or more of the clusters, wherein each filter has the particular values of the one or more features identified by the corresponding cluster; and providing, for presentation on a user device, the plurality of itineraries that satisfy the flight search query and the one or more filters for filtering the plurality of itineraries.