A system for ranking search results obtained from an information retrieval system includes a search pre-processor, a search engine and a search post-processor. The search preprocessor determines the context of the search query by comparing the terms in the search query with a predetermined user context profile. Preferably, the context profile is a user profile or a community profile, which includes a set of terms which have been rated by the user, community, or a recommender system. The search engine generates a search result comprising at least one item obtained from the information retrieval system. The search post-processor ranks each item returned in the search result in accordance with the context of the search query.