storage = DataStoreUtil.makeStorage(relation.getDBIDs(), DataStoreFactory.HINT_HOT | DataStoreFactory.HINT_TEMP, SetDBIDs.class);
KNNQuery<O, D> knnquery = QueryUtil.getKNNQuery(relation, distanceFunction, numberOfNeighbors);
FiniteProgress progress = getLogger().isVerbose() ? new FiniteProgress("assigning nearest neighbor lists", relation.size(), getLogger()) : null;
for(DBID id : relation.iterDBIDs()) {
TreeSetModifiableDBIDs neighbors = DBIDUtil.newTreeSet(numberOfNeighbors);
List<DistanceResultPair<D>> kNN = knnquery.getKNNForDBID(id, numberOfNeighbors);
for(int i = 0; i < kNN.size(); i++) {
final DBID nid = kNN.get(i).getDBID();
// if(!id.equals(nid)) {
neighbors.add(nid);
// }
// Size limitation to exaclty numberOfNeighbors
if(neighbors.size() >= numberOfNeighbors) {
break;
}
}
storage.put(id, neighbors);
if(progress != null) {