1. A method, comprising: maintaining, using one or more processing units, a mapping of a plurality of metadata stores, wherein the mapping includes characteristics corresponding to each metadata store; receiving, using the one or more processing units, a plurality of search queries; dividing, using the one or more processing units, each search query into one or more query segments according to the characteristics corresponding to each metadata store, wherein each query segment is associated with at least one metadata store; combining, using the one or more processing units, query segments into one or more bundles, wherein each query segment in a bundle is associated with the same metadata store; generating, using the one or more processing units, a search request for each bundle, wherein the search request specifies the metadata store associated with the bundle, wherein the search request is assigned a time slice for processing, and wherein when the search request is not completed within the time slice, a status of the search request is stored for subsequent processing; generating, using the one or more processing units, bundle results for each bundle of query segments; and reorganizing, using the one or more processing units, the bundle results into final results for each search query.