1. A computer-implemented method, comprising: receiving a search query from a user computing device; analyzing, by execution of code by a query optimization system comprising one or more computing devices, the search query to determine a class of the search query; identifying, by the query optimization system, one or more specialized data stores available to answer the search query, based at least in part on the class of the search query and whether the one or more specialized data stores are able to accurately answer queries of the class; determining, by the query optimization system, whether to use one of the identified specialized data stores to answer the search query, wherein the determining is based at least in part on performance data associated with respective specialized data stores, wherein the performance data indicates at least (1) an average response time associated with respective specialized data stores in answering search queries and (2) recency of data stored by respective specialized data stores when a determination is made to not use one of the specialized data stores, retrieving search results for the search query using a general search engine; or when a determination is made to use one of the specialized data stores: selecting for use to answer the search query a specialized data store from the one or more identified specialized data stores, wherein the selected specialized data store has a lowest average response time and/or more recently stored data; attempting to retrieve the search results for the search query using the selected specialized data store; determining whether the search results were retrieved from the selected specialized data store; and when a determination is made that the search results were not retrieved from the selected specialized data store, retrieving the search results for the search query using a general search engine; and returning the retrieved search results to the user computing device.
1. A computer-implemented method, comprising: receiving a search query from a user computing device; analyzing, by execution of code by a query optimization system comprising one or more computing devices, the search query to determine a class of the search query; identifying, by the query optimization system, one or more specialized data stores available to answer the search query, based at least in part on the class of the search query and whether the one or more specialized data stores are able to accurately answer queries of the class; determining, by the query optimization system, whether to use one of the identified specialized data stores to answer the search query, wherein the determining is based at least in part on performance data associated with respective specialized data stores, wherein the performance data indicates at least (1) an average response time associated with respective specialized data stores in answering search queries and (2) recency of data stored by respective specialized data stores when a determination is made to not use one of the specialized data stores, retrieving search results for the search query using a general search engine; or when a determination is made to use one of the specialized data stores: selecting for use to answer the search query a specialized data store from the one or more identified specialized data stores, wherein the selected specialized data store has a lowest average response time and/or more recently stored data; attempting to retrieve the search results for the search query using the selected specialized data store; determining whether the search results were retrieved from the selected specialized data store; and when a determination is made that the search results were not retrieved from the selected specialized data store, retrieving the search results for the search query using a general search engine; and returning the retrieved search results to the user computing device. 5. The method of claim 1 , wherein the class of the search query indicates a type of data being requested.