public IResult SearchKNN(int[] qseq, object q, IResult res, int maxcand)
{
var C = this.GetCandidates (qseq, Math.Abs (maxcand));
if (maxcand < 0) {
return C;
} else {
foreach (var p in C) {
var docid = p.ObjID;
double d = this.DB.Dist (q, this.DB [docid]);
res.Push (docid, d);
--maxcand;
if (maxcand <= 0) {
break;
}
}
}
return res;
}