12. A non-transitory computer-readable storage medium storing executable computer program instructions for contextual personalized search comprising instructions for performing the steps comprising: accessing a knowledge base comprising a hierarchy of nodes, each node associated with a concept, each concept being an instance of a category, wherein one or more documents are mapped to each of the nodes of the knowledge base; receiving an input query for a search for one or more of the documents mapped to the nodes, the input query comprising a plurality of components; mapping at least some of the components of the search query into the knowledge base, each of the at least some of the components mapped to at least one of the nodes of the knowledge base having a concept that matches the component as a query concept; matching the query concepts to documents mapped to the knowledge base that match the query concepts, the matching performed by: traversing the hierarchy of the knowledge base to match nodes of each of the query concepts across other nodes in the hierarchy of the knowledge base to a plurality of target nodes, at least one of the query concepts being in a first category and being a) matched using transitivity from the first category through at least one second category to at least one of the target nodes in a third category, or being b) matched using transitive closure to a plurality of the target nodes in the first category; selecting, as matches for the input query, each of the documents mapped to one of the target nodes, the selected documents being target documents for the input query; scoring each of the target documents against each of the query concepts to provide a score for each of the target documents; and generating a search result for the input query, the search result comprising at least some of the target documents in ranked order based on the score for each target document.
12. A non-transitory computer-readable storage medium storing executable computer program instructions for contextual personalized search comprising instructions for performing the steps comprising: accessing a knowledge base comprising a hierarchy of nodes, each node associated with a concept, each concept being an instance of a category, wherein one or more documents are mapped to each of the nodes of the knowledge base; receiving an input query for a search for one or more of the documents mapped to the nodes, the input query comprising a plurality of components; mapping at least some of the components of the search query into the knowledge base, each of the at least some of the components mapped to at least one of the nodes of the knowledge base having a concept that matches the component as a query concept; matching the query concepts to documents mapped to the knowledge base that match the query concepts, the matching performed by: traversing the hierarchy of the knowledge base to match nodes of each of the query concepts across other nodes in the hierarchy of the knowledge base to a plurality of target nodes, at least one of the query concepts being in a first category and being a) matched using transitivity from the first category through at least one second category to at least one of the target nodes in a third category, or being b) matched using transitive closure to a plurality of the target nodes in the first category; selecting, as matches for the input query, each of the documents mapped to one of the target nodes, the selected documents being target documents for the input query; scoring each of the target documents against each of the query concepts to provide a score for each of the target documents; and generating a search result for the input query, the search result comprising at least some of the target documents in ranked order based on the score for each target document. 20. The non-transitory computer-readable storage medium of claim 12 , further comprising mapping the one or more documents into a plurality of knowledge bases, the mapping comprising: identifying and searching for concepts referenced in a string of text in each of the one or more documents by matching expression patterns to the string; parsing the string into sub-strings based on the expression patterns; searching through the knowledge bases to find concepts based on the sub-strings; applying a rule set for parsing the string; and defining a string normalization function for mapping one string to another string, the string normalization function converting strings into common character representations for finding matches with concepts in the knowledge bases.