public virtual void ScoreResults() { var items = SearchResults.Where(x => x.Uri != null).GroupBy(x => x.Uri).Select(x => x.First()).ToList(); Parallel.ForEach(items, (a) => { var html = HtmlDocumentCollector.GetDocument(a.Uri.ToString()).Result; var doc = HtmlDocumentCollector.GetHtmlDocument(html).Result; var content = doc.DocumentNode.InnerText; ScoredKeywords.Select(x => x.Key).ToList().ForEach(kw => { if (content.Contains(kw)) { a.KeywordScore += ScoredKeywords[kw]; } }); }); }
public void CollectSearches() { SearchResults = new List <SearchResult>(); SearchUrls.ForEach(x => { var content = HtmlDocumentCollector.GetDocument(x).Result; var doc = HtmlDocumentCollector.GetHtmlDocument(content).Result; Searcher.DocumentNode = doc.DocumentNode; var nodes = Searcher.GetSearchResultNodes().Result; nodes.ForEach(node => { var item = Searcher.GetSearchResult(node).Result; if (item != null && item.Uri != null & !ExcludeUrls.Contains(item.Uri.ToString())) { SearchResults.Add(item); } }); }); }