private void MakeFromItem(SearchResultsItem item) { Name = item.ShortName; FullName = item.Filename; Location = item.Location; Date = item.Modified.ToString(); Hits = item.HitCount.ToString(); Detail = Hits + " hits " + Date; }
public ResultSet SearchAllArticles(string terms, string type, int page, string lang) { ResultSet results = new ResultSet(); SetContextLanguage(lang); int blurbLimit = 150; // TODO: move to constant SearchResultsItem item = Sitecore.Context.Database.GetItem(Constants.Pages.SearchResults); if (item != null && !string.IsNullOrEmpty(item.SearchResultSummaryCharacterLimit.Raw)) { blurbLimit = item.SearchResultSummaryCharacterLimit.Integer; } int totalResults = 0; List <Article> articles = SearchHelper.PerformArticleSearch(terms, type, page, out totalResults); List <SearchArticle> searchArticles = new List <SearchArticle>(); foreach (Article article in articles) { DefaultArticlePageItem articleItem = article.GetItem(); if (articleItem == null) { continue; } // Handle cases such as invalid link format exception try { var sa = new SearchArticle { Title = Common.Helpers.TextHelper.HighlightSearchTitle(terms, HttpUtility.HtmlDecode(articleItem.ContentPage.PageTitle.Rendered)), Url = articleItem.GetUrl(), Thumbnail = articleItem.GetArticleThumbnailUrl(230, 129), Blurb = articleItem.GetSearchResultBlurb(blurbLimit), Type = articleItem.GetArticleType() }; searchArticles.Add(sa); } catch (Exception ex) { Sitecore.Diagnostics.Log.Error("Error populating search result", ex, this); } } results.Articles = searchArticles; results.TotalMatches = totalResults; results.HasMoreResults = HasMoreResults(page, Constants.SEARCH_RESULTS_ENTRIES_PER_PAGE, results.Articles.Count(), totalResults); return(results); }
public List <ResultModel> Search(string txt, string option) { List <ResultModel> lst = new List <ResultModel>(); SearchJob sj1 = new SearchJob(); sj1.BooleanConditions = txt; string[] ddlist; ddlist = Directory.GetDirectories(@"C:\Users\meharr\AppData\Local\dtSearch"); sj1.IndexesToSearch.AddRange(ddlist); sj1.MaxFilesToRetrieve = 100; if (option == "stemming") { sj1.SearchFlags = SearchFlags.dtsSearchStemming; } else if (option == "phonic") { sj1.SearchFlags = SearchFlags.dtsSearchPhonic; } else if (option == "fuzzy") { sj1.Fuzziness = 5; sj1.SearchFlags = SearchFlags.dtsSearchFuzzy; } sj1.Execute(); SearchResults result = sj1.Results; for (int i = 0; i < result.Count; i++) { var tile = HighlightResult(i, result); int len = tile.Length; int ind = tile.IndexOf("Filename"); tile = tile.Remove(ind, Math.Abs(ind - len)); result.GetNthDoc(i); SearchResultsItem item = result.CurrentItem; ResultModel mod = new ResultModel(); mod.DisplayName = item.DisplayName; mod.FileName = item.Filename; mod.Title = tile; mod.HitCount = item.HitCount; lst.Add(mod); } return(lst); }
private void ProcessResults(QueryResult resultInfo, SearchResults dtResult) { const int BatchSize = 5000; // Expose to config if needed if (!_skipLoadResult) { _logger.LoadStarted(); } if (_orderBy) { _logger.SortStarted(); dtResult.Sort(SortFlags.dtsSortBySortKey, "E-table_Docid"); _logger.SortStopped(); } SqlConnection con = null; try { con = new SqlConnection(_connString); con.Open(); DataTable resultTbl = PrepareDataTable(con, resultInfo.ResultTable, resultInfo.SourceTable); resultTbl.BeginLoadData(); DataRowCollection rows = resultTbl.Rows; bool returnFirstPageOnly = (_pageSize > 0); for (int i = 0; i < resultInfo.HitCount; ++i) { if (returnFirstPageOnly && i == _pageSize) { break; } dtResult.GetNthDoc(i); SearchResultsItem item = dtResult.CurrentItem; DataRow dtRowTmp = resultTbl.NewRow(); dtRowTmp.ItemArray = new object[] { item.ShortName.Split(RowGuidDelimiter, StringSplitOptions.RemoveEmptyEntries)[0] }; rows.Add(dtRowTmp); if (!_skipLoadResult && i > BatchSize) { UploadQueryResult(con, resultInfo.ResultTable, ref resultTbl); } } if (!_skipLoadResult) { UploadQueryResult(con, resultInfo.ResultTable, ref resultTbl); } resultTbl.EndLoadData(); PostLoad(con, resultInfo.ResultTable); } finally { con.Close(); } if (!_skipLoadResult) { _logger.LoadStopped(); } }
public ResultsItem(SearchResultsItem item) { MakeFromItem(item); }