6. A method for routing a query, the method comprising: receiving a query from a user passed by an application program on a client side, including: allowing the user to highlight text in a word processing document; and allowing the user to select one or more action items from a menu to initiate the query; processing the query on the client side to create one or more query terms; analyzing the query terms on the client side to identify one or more providers that are matches for the query terms; sending a test query including at least a portion of the query to a particular provider; determining whether or not the particular provider is a match based on a response to the test query from the particular provider; grouping the providers into a plurality of categories on the client side according to information provided by the providers; allowing the user to select a category from the plurality of categories on the client side to route the query; querying the providers that are matches; assembling results from the providers into a hierarchy, the hierarchy including a top level having each provider's name and a status for each provider indicating whether or not the provider is available, and the hierarchy including a bottom level listing search results for one or more of the providers; and presenting the results from the providers to the user in context within a results interface of the application program.
10. The method of claim 6 , further comprising: presenting a dropdown within the results interface that allows the user to select from prior query terms; and presenting forward and backward buttons within the results interface that allow the user to move forward and backward between the results generated by the search processor and shown in the results interface.