1. A computer-implemented method comprising: receiving a plurality of inverted lists of quantized data points, each inverted list having a centroid data point associated therewith, the centroid data point representing an average of all of the quantized data points in the respective inverted list; sorting, by a processor, each inverted list according to a squared distance between each quantized data point in the respective inverted list and the respective centroid data point in the same inverted list as the quantized data point; receiving a query data point; and selecting, by the processor, a set of quantized data points from across each of the sorted inverted lists, each selected data point being within a distance of the respective centroid data point, the distance defined by a squared distance between the query data point and the respective centroid data point, wherein a first vector from the respective centroid data point in the same inverted list as the selected quantized data point to the query data point is orthogonal to a second vector from the respective centroid data point in the same inverted list as the selected quantized data point to the selected quantized data point.