1. A method of processing a search query, comprising: at a computer system having one or more processors and memory storing one or more programs executed by the one or more processors: for each search context of a plurality of search contexts, for each scoring primitive of a plurality of scoring primitives, for a set of previously executed search queries that are consistent with the search context, determining a correlation between the scoring primitive and actual user selections of results of the previously executed search queries by a plurality of users; and for each search context, performing machine learning on the correlations to identify a predicted performance function comprising a weighted subset of the scoring primitives that meet predefined predictive quality criteria, wherein the identified predicted performance function is associated with the search context; and receiving and executing a user submitted search query, submitted by a user, to produce a set of search results, including associating the user submitted search query with a respective search context of the plurality of search contexts, and ordering at least a portion of the search results in accordance with the identified predicted performance function for the search context associated with the user submitted search query.