13. A multi-stage query processing system, comprising: one or more processors; memory; and one or more programs stored in the memory, the one or more programs comprising instructions to: perform first stage processing of the query, including: retrieving from an index, a list of token positions for one or more query terms in the query, wherein the token positions in the list specify positions of individual tokens that match the query terms; based on the list of token positions, producing a first set of document identifiers, and generating a first set of relevancy scores for a first set of documents corresponding to the first set of document identifiers; perform a second stage processing of the query, including: generating a second set of relevancy scores for the documents in the first set of documents based on one or more of: the list of token positions, distances between query terms in the documents, attributes of tokens in the documents, and a context in which a query term is used in a document of the first set of documents, and selecting a subset of the first set of documents based on the second set of relevancy scores; automatically generate one or more new query expansion terms based on documents in the subset of the first set of documents; and generate a new query expression based on the query and the one or more new query expansion terms for processing by at least the first processing stage to produce at least a second set of document identifiers corresponding to a second set of documents.
17. The system of claim 13 , further comprising: instructions for use during the second stage processing of the query, comprising: generate snippets for one or more documents in the subset of the first set of documents; and automatically generate one or more new query expansion terms based on the snippets.