Lucene.Net.Join.TermsIncludingScoreQuery.SVInOrderScorer.FillDocsAndScores C# (CSharp) Method

FillDocsAndScores() protected method

protected FillDocsAndScores ( FixedBitSet matchingDocs, Bits acceptDocs, Lucene.Net.Index.TermsEnum termsEnum ) : void
matchingDocs Lucene.Net.Util.FixedBitSet
acceptDocs Bits
termsEnum Lucene.Net.Index.TermsEnum
return void
            protected virtual void FillDocsAndScores(FixedBitSet matchingDocs, Bits acceptDocs,
                TermsEnum termsEnum)
            {
                BytesRef spare = new BytesRef();
                DocsEnum docsEnum = null;
                for (int i = 0; i < outerInstance._terms.Size(); i++)
                {
                    if (termsEnum.SeekExact(outerInstance._terms.Get(outerInstance._ords[i], spare)))
                    {
                        docsEnum = termsEnum.Docs(acceptDocs, docsEnum, FLAG_NONE);
                        float score = outerInstance._scores[outerInstance._ords[i]];
                        for (int doc = docsEnum.NextDoc();
                            doc != NO_MORE_DOCS;
                            doc = docsEnum.NextDoc())
                        {
                            matchingDocs.Set(doc);
                            // In the case the same doc is also related to a another doc, a score might be overwritten. I think this
                            // can only happen in a many-to-many relation
                            scores[doc] = score;
                        }
                    }
                }
            }