A program storage device readable by a machine which includes one or more reduced dimensionality indexes to multidimensional data, the program storage device tangibly embodying a program of instructions executable by the machine to perform method steps for searching for k records most similar to specified data, using the one or more indexes, said method steps comprising:
- identifying the specified data with a data cluster based on clustering information, said data cluster being a partition of an original data input set;
- after said identifying step, reducing a dimensionality of the specified data, based on dimensionality reduction information for an identified cluster;
- recursively applying said identifying and reducing steps until a corresponding lowest level of a hierarchy of reduced dimensionality clusters has been reached;
- generating dimensionality reduction information for reduced dimensionality specified data, in response to said reducing;
- and
- retrieving the .ltoreq.k records most similar to the specified data, from the identified cluster using the one or more reduced dimensionality indexes, the dimensionality reduction information and the reduced dimensionality specified data.