1. A method for indexing data, comprising: formulating an objective function to index a dataset, a portion of the dataset including supervision information; determining a data property component of the objective function which utilizes a property of the dataset to group data of the dataset; determining a supervised component of the objective function which utilizes the supervision information to group data of the dataset; and optimizing the objective function using a processor based upon the data property component and the supervised component to partition a node into a plurality of child nodes, wherein the objective function includes a tradeoff parameter to balance contributions from the data property component and the supervision component, wherein determining the data property component includes maximizing a variance of the dataset, and wherein maximizing the variance includes applying maximum variance unfolding, the maximum variance unfolding comprising forming a projection as an inner product of a data matrix and a learned partition hyperplane and maximizing overall pairwise distances in a projected space.