natix.SimilaritySearch.MultiNeighborhoodHash.SearchKNN C# (CSharp) Method

SearchKNN() public method

public SearchKNN ( object q, int knn, IResult res ) : IResult
q object
knn int
res IResult
return IResult
        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
        }