2. A computer system comprising a processor and a computer readable memory unit coupled to the processor, said memory unit containing program code configured to be executed by the processor to implement a method for document analysis and retrieval, said method comprising: receiving a document having text therein from a host of a first computing system; generating document keys associated with said text from analysis of said text, each said document key selected from the group consisting of a keyword of said text and a keyphrase of said text; providing a document taxonomy having categories, each category having category keys, each said category key selected from the group consisting of a keyword of said category and a keyphrase of said category; comparing the category keys of each category with said document keys to make a determination of a distance between the document and each category as a measure of how close the document is to each category; and returning a subset of said categories to said host, wherein said subset of said categories reflects said determination, said method further comprising: generating document weights, wherein each document weight is associated with a corresponding document key of said document keys, and wherein each document weight is a measure of the importance of its corresponding document key in comparison with the other document keys of the document; and providing category weights for each category, wherein each category weight is associated with a corresponding category key of said category keys, wherein each category weight is a measure of the importance of its corresponding category key in comparison with the other category keys of the category, and wherein said comparing comprises computing said distance for each category as a dot product of a vector of said document weights and a vector of said category weights for each category.
2. A computer system comprising a processor and a computer readable memory unit coupled to the processor, said memory unit containing program code configured to be executed by the processor to implement a method for document analysis and retrieval, said method comprising: receiving a document having text therein from a host of a first computing system; generating document keys associated with said text from analysis of said text, each said document key selected from the group consisting of a keyword of said text and a keyphrase of said text; providing a document taxonomy having categories, each category having category keys, each said category key selected from the group consisting of a keyword of said category and a keyphrase of said category; comparing the category keys of each category with said document keys to make a determination of a distance between the document and each category as a measure of how close the document is to each category; and returning a subset of said categories to said host, wherein said subset of said categories reflects said determination, said method further comprising: generating document weights, wherein each document weight is associated with a corresponding document key of said document keys, and wherein each document weight is a measure of the importance of its corresponding document key in comparison with the other document keys of the document; and providing category weights for each category, wherein each category weight is associated with a corresponding category key of said category keys, wherein each category weight is a measure of the importance of its corresponding category key in comparison with the other category keys of the category, and wherein said comparing comprises computing said distance for each category as a dot product of a vector of said document weights and a vector of said category weights for each category. 3. The computer system of claim 2 , wherein the document weights are a linear function of the number of appearances of the corresponding document keys in the document.