1. A computer-implemented method, the method comprising: for each of a plurality of categories and for a collection of documents, wherein each category is associated with one or more respective text patterns and one or more keywords or phrases specific to the category: applying the text patterns specific to the category to the collection of documents to identify a plurality of fact terms in the documents, each fact term being a segment of text that matches one of the text patterns specific to the category one or more times in the documents of the collection; creating and storing in a computer readable memory a plurality of first associations, each first association associating a respective fact term of the plurality of fact terms to a respective plurality of documents that each contain the respective fact term; creating and storing in a computer readable memory a plurality of second associations between documents and previously-submitted queries, each document being one of the associated documents in the first associations, each previously-submitted query including a keyword or phrase specific to the category, each second association associating a respective document from the first associations to the one or more previously-submitted queries that had a search result that referenced the respective document; and generating from the first associations and the second associations and storing in a computer readable memory a plurality of mappings, each of the mappings associating a query with a single fact term, wherein the query and the fact term are both associated with at least a threshold number of the same documents by the second and first associations respectively.