1. A computer-implemented method comprising: receiving, by a processor of a directory server, a first request from a client computer via network, the first request specifying a first attribute of a plurality of attributes, first attribute subtype and a first attribute subtype value, and the first attribute having a first data type of a plurality of data types; determining by the processor of the directory server an index for the first attribute does not exist; if the index for the first attribute does not exist, invoking by the processor, in response to the first request, a first plugin of a plurality of plugins coupled to the directory server, wherein the first plugin corresponds to the first data type, wherein the first plugin identifies first metadata that has a first format corresponding to the first data type, wherein the first format of the first metadata comprises a first property, and wherein the first metadata comprises a value of the first property and wherein the invoking of the first plugin comprises passing a first parameter to the first plugin; receiving from the first plugin, a first entry in a repository of the directory server, wherein the first entry matches the first parameter; and providing to the client computer, the first entry including the first attribute subtype and the first attribute subtype value; receiving, by the processor, a second request from the client computer via the network, the second request specifying a second attribute of the plurality of attributes that is different than the first attribute, a second attribute subtype and a second attribute subtype value, and the second attribute having a second data type of the plurality of data types that is different than the first data type; determining by the processor of the directory server an index for the second attribute does not exist; if the index for the second attribute does not exist, invoking by the processor, in response to the second request, a second plugin of the plurality of plugins that is different than the first plugin, wherein the second plugin corresponds to the second data type, and wherein the second plugin identifies second metadata that has a second format corresponding to the second data type, and wherein the second format of the second metadata lacks the first property, and wherein the invoking of the second plugin comprises passing a second parameter to the second plugin; and, receiving from the second plugin, a second entry in the repository of the directory server, wherein the second entry matches the second parameter; and providing to the client computer, the second entry including the second attribute subtype and the second attribute subtype value.