1. A computer-implemented method performed at a server system for processing a search query, comprising: receiving at the server system the search query from a search requestor at a client system that is distinct from the server system; at the server system, responding to receiving the search query, including: determining whether the search query is a partial search query or a final search query; wherein, when the search query is deemed to be a partial search query: (A) predicting a plurality of predicted queries based upon the search query, wherein the predicting (A) includes selecting the predicted queries based, at least in part, on how many times each of the predicted queries has been reused from a cache at the server system; (B) obtaining a first list of documents corresponding to the plurality of predicted queries, wherein the first list of documents is obtained by combining respective documents corresponding to individual predicted queries in the plurality of predicted queries prior to receiving a selection of any predicted query in the plurality of predicted queries from the search requester; and (C) transmitting, from the server system, (i) the plurality of predicted queries, and (ii) the first list of documents corresponding to the plurality of predicted queries to the search requestor at the client system; and when the search query is deemed to be a final search query: (i) obtaining a second list of documents corresponding to the final search query, wherein at least a portion of the list of documents is obtained using a server system cache index and associated cache; and (ii) transmitting, from the server system, the second list of documents to the search requestor at the client system; wherein the predicting (A), obtaining (B) and transmitting (C) are executed before obtaining, at the server system, an affirmation, by the search requestor, of a request for executing the search query.