1. A method of processing a search query, the method comprising: receiving a search query for a user from a host system; identifying at least two contexts, each context being associated with at least one of the user or a host system; aggregating the at least two contexts to form an aggregated context; processing the query using the aggregated context by programmatically altering at least one of: execution of the search engine on the query; and the search results; to produce processed search results; and providing the processed search results to the user.