public override IResult SearchKNN(object q, int knn, IResult res)
{
var evaluated = new HashSet<int> ();
var exp = A [0].NeighborhoodExpansion - A[0].SymbolsPerHash + 1;
foreach (var idx in this.A) {
var rankedList = idx.RankRefs (q);
for (int start = 0; start < exp; ++start) {
var hashList = idx.FetchPostingLists (rankedList, start);
idx.InternalSearchKNN (q, res, hashList, evaluated);
}
}
return res;
// Parallel version seems to be obvious but the overhead is too high
}