1. A method, comprising: storing, using a processor of a computer, data elements, wherein each of the data elements is represented by a vector of features from a set of features; creating an inverted index for the set of features; forming a ranked list of the features in the set of features; and creating clusters by performing for each of the features in the ranked list of the features: selecting a feature in the ranked list of the features that has not been previously selected to create the clusters; issuing a query against the inverted index to retrieve those data elements that have the selected feature and that do not have any of the features that were previously selected to create the clusters; and creating a new cluster of the retrieved data elements that have the selected feature and that do not have any of the features that were previously selected to create the clusters; and generating a hierarchy of the clusters by: for a cluster at a level of the hierarchy having a first feature, selecting a second feature; issuing a new query against the inverted index to retrieve other data elements having the first feature, having the second feature, and not having any previously selected feature that has been used to create another sub-cluster at the level of the hierarchy; and creating a new sub-cluster with the other data elements having the first feature, having the second feature, and not having any previously selected feature that has been used to form another sub-cluster at the level of the hierarchy.