1. A computer-implemented method for contextual personalized search, the method comprising: using a computer system to execute method 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.