1. A method for ranking search results using user preferences, the method comprising: obtaining a set of custom ranking factors which specify document attributes to be applied to search results for a query; for each of the custom ranking factors, defining a type of the custom ranking factor; receiving a user-supplied weight from a user for each of the set of custom ranking factors which specify document attributes; generating, using a processor operatively coupled to a memory, a ranking algorithm that is a combination function of the set of custom ranking factors which specify document attributes based on the user-supplied weights for the ranking factors and the type of the custom ranking factors; applying the ranking algorithm to search results for the query; and displaying the search results ranked according to the ranking algorithm.