1. A method comprising: receiving, at a server, from a client, over a network, a request that includes both query data and a context vector; wherein the query data is a first set of one or more terms; wherein the query data is different from the context vector; wherein the request further includes first data identifying the first set of one or more terms to the server as a set of one or more search terms, the one or more search terms having been entered by a user; wherein the request further includes second data indicating to the server that the context vector represents a set of one or more context terms, the one or more context terms representative of content presented at the client during a time that the user entered the set of one or more search terms; in response to the request, generating a search result comprising a ranked list of hits by at least: selecting one or more search keywords and ranking criteria based on the request, searching a search corpus for the search keywords to identify a plurality of hits, and ranking the plurality of hits using the ranking criteria to generate the ranked list of hits; wherein generating the search result includes at least one of: selecting the one or more search keywords based, at least in part, on the query data, but not the context vector, and selecting the ranking criteria based at least in part on the context vector; selecting the one or more search keywords based, at least in part, on the context vector, but not the query data, and selecting the ranking criteria based at least in part on the query data; selecting the one or more search keywords based, at least in part, on the context vector, and selecting the ranking criteria based, at least in part, on the query data, but not the context vector; or selecting the ranking criteria based, at least in part, on one or more context terms in the context vector that were not selected as the one or more search keywords; wherein the method is performed by one or more computing devices.