1. A computer-implemented method, comprising: receiving from a user, through a user interface of a search application at a computing device, a portion of a query that is less than a complete query; providing the portion of the query to multiple data provider modules nearly simultaneously, each of the data provider modules able to search at least one data source using the portion of the query; receiving, from ones of the data provider modules, a set of search suggestion items resulting from searching the data sources, each of the search suggestion items including a rank value and a relevance value, each of the rank values indicating a frequency for which the corresponding search suggestion item has been previously accessed, and each of the relevance values indicating a level of match between the portion of the query and the corresponding search suggestion item; determining a score for each of the search suggestion items by multiplying the rank value and the relevance value for each of the search suggestion items; sorting the search suggestion items using the scores; and sending the sorted search suggestion items for presentation to the user.