public IndexedDocument(DocumentModel uploadedDocument, User user, DocumentIndexator documentIndexator) { var uploadedFile = uploadedDocument.File; FileName = Path.GetFileNameWithoutExtension(uploadedFile.FileName); CreatedDate = DateTime.Now; UserId = user.Id; ITextExtractor textExtractor = TextExtractorFactory.GetTextExtractor(uploadedDocument.DocumentExtension); Content = textExtractor.ExtractText(uploadedDocument); WordFrequency = documentIndexator.ExtractWordFrequency(Content + ' ' + FileName); }
public ActionResult Index(SearchFormModel searchModel) { if (!string.IsNullOrWhiteSpace(searchModel.Query.QueryString)) { var queryFrequencies = documentIndexator.ExtractWordFrequency(searchModel.Query.QueryString); var user = User as User; var documents = documentRepository.GetAllForUser(user); IEnumerable <Dictionary <string, double> > allFrequencies = documents.Select(doc => doc.WordFrequency); searchModel.Results = documents.Select(doc => new SearchResultItem() { Document = doc, Relevancy = relevancyCounter.GetDocumentRelevancy(queryFrequencies, doc.WordFrequency, allFrequencies) }).Where(result => result.Relevancy > 0).OrderByDescending(result => result.Relevancy).ToList(); } return(View(searchModel)); }