public ActionResult PagedResult(int? id) { if (!id.HasValue) { return RedirectToAction("PagedResult", new { id = 0 }); } var searchResultModel = new Models.SearchResultModel<SearchResultItem>(); var index = ContentSearchManager.GetIndex("sitecore_master_index"); using (var context = index.CreateSearchContext()) { var queryable = context.GetQueryable<SearchResultItem>(); // Event though we apply Paging - we still get a TotalSearchResults // for the search result without the limit var result = queryable .Where(i => (i.Name.Contains("Media") || i.Name.Contains("FDA"))) .Page(id.Value, 10) .GetResults(); searchResultModel.Hits = result.Hits.ToList(); searchResultModel.TotalSearchResults = result.TotalSearchResults; searchResultModel.Facets = result.Facets; return View(searchResultModel); } }
public ActionResult QueryAndFilter() { var searchResultModel = new Models.SearchResultModel<SearchResultItem>(); var index = ContentSearchManager.GetIndex("sitecore_master_index"); using (var context = index.CreateSearchContext()) { var queryable = context.GetQueryable<SearchResultItem>(); // No query or filter restriction for "folder" in name var result = queryable .Where(i => (i.Name.Contains("Media") || i.Name.Contains("FDA"))) .GetResults(); // Filtered to only show items with "folder" in the name //var result = queryable // .Where(i => (i.Name.Contains("Media") || i.Name.Contains("FDA"))) // .Filter(i => i.Name.Contains("Folder")) // .GetResults(); // Query restriction to only show items - This will impact ranking! //var result = queryable // .Where(i => (i.Name.Contains("Media") || i.Name.Contains("FDA")) && i.Name.Contains("Folder")) // .GetResults(); searchResultModel.Hits = result.Hits.ToList(); searchResultModel.TotalSearchResults = result.TotalSearchResults; searchResultModel.Facets = result.Facets; return View(searchResultModel); } }
public ActionResult Fuzzy(string id) { id = id ?? ""; var searchResultModel = new Models.SearchResultModel<SearchResultItem>(); var index = ContentSearchManager.GetIndex("sitecore_master_index"); using (var context = index.CreateSearchContext()) { var queryable = context.GetQueryable<SearchResultItem>(); var result = queryable .Where(i => i.Name.Like(id, 0.5f)) .GetResults(); searchResultModel.Hits = result.Hits.ToList(); searchResultModel.TotalSearchResults = result.TotalSearchResults; searchResultModel.Facets = result.Facets; return View(searchResultModel); } return new EmptyResult(); }
public ActionResult Facets() { var searchResultModel = new Models.SearchResultModel<SearchResultItem>(); var index = ContentSearchManager.GetIndex("sitecore_master_index"); using (var context = index.CreateSearchContext()) { var queryable = context.GetQueryable<SearchResultItem>() .Where(i => (i.Name.Contains("Media") || i.Name.Contains("FDA"))) .FacetOn(i => i.Language) .FacetOn(i => i.TemplateName); var facets = GetFacetsFromQueryString(Request.QueryString); foreach (var facet in facets) { queryable = queryable.Filter(i => i[facet.Key].Equals(facet.Value)); } ViewBag.Facets = facets; var result = queryable.GetResults(); searchResultModel.Hits = result.Hits.ToList(); searchResultModel.TotalSearchResults = result.TotalSearchResults; searchResultModel.Facets = result.Facets; return View(searchResultModel); } }