1. A computer-implemented method for analyzing a collection of documents, comprising: (a) tokenizing one or more queries to generate an ordered sequence of query tokens for each query; (b) tokenizing one or more documents to generate an ordered sequence of document tokens for each document; (c) selecting an ordered sequence of document tokens from the tokenized one or more documents; (d) selecting an ordered sequence of query tokens from the tokenized one or more queries; (e) configuring a buffer to hold a subsequence of the selected ordered sequence of document tokens; (f) comparing the selected ordered sequence of query tokens to successive subsequences of the selected ordered sequence of document tokens in the configured buffer, wherein each of the successive subsequences and the selected ordered sequence of query tokens have the same length in tokens; (g) determining a match result based upon the comparison; and (h) updating one or more statistics based upon the determined match result, wherein the one or more statistics are stored in global memory, wherein the one or more statistics are updated asynchronously by two or more processes executing steps (a)-(g), and wherein each of the two or more processes steps (a)-(g) for at least one document and at least one query, including generating a first match result by the first process and a second match result by the second process, wherein the first match result and the second match result are combined as the determined match result.