1. A computer-implemented method comprising: receiving one or more search query terms submitted by a particular user; retrieving a list of search results based on the search query terms; accessing user preference profile information identifying one or more preferences of the particular user; ranking the list of search results, based on the user preference profile information, wherein a first search result describing a product matching the preferences of the particular user is ranked higher in the ranked list in comparison to a second search result describing a second product that does not match the preferences of the particular user; and providing the ranked list of search results to the particular user.