Ejemplo n.º 1
0
        public IEnumerable <DocumentScore> SearchForTerm(int termId, InvertedIndex invertedIndex)
        {
            var documentHitList = invertedIndex.Search(termId);
            var scoreCalculater = new Bm25(NumberOfDocuments, (double)NumberOfTerms / NumberOfDocuments);

            foreach (var docHit in documentHitList)
            {
                var score = scoreCalculater.Score(docHit.DocumentId, documentHitList.Count(), docHit.Offsets.Count(), _documentNumberOfTerms[docHit.DocumentId]);
                yield return(new DocumentScore()
                {
                    DocumentId = docHit.DocumentId, Score = score
                });
            }
        }