Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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));
        }