1. A system for routing queries, the system comprising: a processor; and one or more computer-readable storage media on a client side encoding instructions to create a search processor, a service recognizer, a query router, and a results interface, wherein: the search processor configured to receive a query from a user passed by an application program, and to break the query into one or more query terms, wherein the application program is configured to allow the user to highlight a portion of text in a word processing document and select one or more action items from a menu to initiate the query based on the highlighted text; the service recognizer configured to analyze the query terms to identify one or more providers that are matches for the query terms, and to group the providers into a plurality of categories according to information provided by the providers, wherein the one or more providers are determined from any user-selected providers and can include one or more non-selected providers based at least in part on the query terms; the query router configured to route the query terms to providers that are matches, wherein the providers each include a database of information that is queried using the query terms; the results interface configured to present results in context within the application program from the providers that are matches to the user in context within the application program, results being displayed according to each provider that returned each result; the results interface displaying: a dropdown menu that when selected allows the user to select from displayed prior queries based upon previous query text; and forward and backward buttons that allow the user to move forward and backward between the prior queries generated by the search processor and included within the dropdown menu and shown in the results interface, wherein the results from the providers that are matches are stored on the one or more computer-readable storage media.
2. The system of claim 1 , wherein the search processor is further configured to parse the query, break the query into the query terms, stem at least one of the query terms, spell check at least one of the query terms, and generate context based on an origin of the query.