1. A system for indexing heterogeneous resources, the system comprising: a database including a set of mappings from an attribute of a cloud resource specific to a cloud to a normalized attribute based on a uniform schema; and one or more servers coupled to the database and configured to execute computer program modules, the computer program modules comprising: a data module executable by the one or more servers, wherein the data module identifies a set of cloud resources in a plurality of virtual datacenters, invokes one or more application programming interfaces (APIs), and responsive to the invoked one or more APIs, receives a first set of attributes of one or more cloud resources of a first subset of the set of cloud resources and a second set of attributes of one or more cloud resources of a second subset of the set of cloud resources, wherein the first subset of cloud resources is executable in the first cloud, and the second subset of cloud resources is executable in the second cloud, and wherein the first set of attributes is compatible with the first cloud and incompatible with the second cloud, and the second set of attributes is compatible with the second cloud and incompatible with the first cloud; a normalization module executable by the one or more servers, wherein for at least one attribute of the first and second sets of attributes, the normalization module searches the database for a normalized attribute corresponding to the at least one attribute, normalizes based on the uniform schema the at least one attribute, and places the normalized at least one attribute in a data structure; and an indexing module executable by the one or more servers, wherein the indexing module indexes the normalized at least one attribute in the data structure.