1. A computer-implemented method for ranking search results using user preferences, comprising: obtaining a set of ranking factors to be applied to search results for a user query; allowing the user to supply a weight for each of the set of ranking factors; for a received user query, generating a ranking algorithm that is a combination function of the ranking factors that apply to the received query and applying the ranking algorithm to search results for the query; and displaying the search results ranked according to the user-supplied weights.