public IEnumerable <IPublishedContent> SearchByQuery() { var searchInstance = ExamineManager.Instance; var searcher = searchInstance.SearchProviderCollection["ExternalSearcher"]; var queryString = Umbraco.GetQueryString("q", string.Empty); var SearchFields = new string[] { "searchWords", "nodeName", "heading", "lead", "teaserHeading", "teaserDescription", " __Raw_layout" }; var result = new List <IPublishedContent>(); if (string.IsNullOrEmpty(queryString)) { return(result.AsEnumerable()); } var criteria = searcher.CreateSearchCriteria(); var query = criteria .Field("__IndexType", "content") .Not().Field("umbracoNaviHide", "1") .Not().Field("template", "0") .And().GroupedOr(SearchFields, queryString) .Compile(); result.AddRange(Umbraco.TypedSearch(query)); return(result.AsEnumerable()); }
public ActionResult GetPage(MediaListViewModel model) { ModelState.Clear(); var result = Enumerable.Empty <IPublishedContent>(); var pageQueryString = Umbraco.GetQueryString("p", string.Empty); result = model.RenderMethod != RenderListMethod.Default ? GetSearchTypeMethod(model.RenderMethod.ToString(), this, new object[] { model }) : model.MediaList; model.MediaList = result; //If items per page isn't initiated, render the full result if (model.ItemsPerPage == 0) { model.ItemsPerPage = model.MediaList.Count(); } model.Page = model.Page <= 0 ? 1 : model.Page + 1; model.TotalPages = Math.Ceiling((decimal)result.Count() / model.ItemsPerPage); if (!string.IsNullOrEmpty(pageQueryString) && model.InitialLoad) { model.MediaList = model.MediaList.Take(model.ItemsPerPage * int.Parse(pageQueryString)); } else { model.MediaList = model.MediaList.Skip(model.Skips).Take(model.ItemsPerPage); } if (model.MediaList != null && model.MediaList.Any()) { return(PartialView($"Components/_{model.RenderPartialView}", model)); } return(PartialView("_EmptySearchResult", model)); }
public IEnumerable <IPublishedContent> SearchVideoBySelectedTag() { var tags = new List <string>(); var travelTag = Umbraco.GetQueryString("t", string.Empty); var destinationTag = Umbraco.GetQueryString("d", string.Empty); if (!string.IsNullOrEmpty(travelTag)) { tags.Add(travelTag); } if (!string.IsNullOrEmpty(destinationTag)) { tags.Add(destinationTag); } var searchInstance = ExamineManager.Instance; var searcher = searchInstance.SearchProviderCollection["ExternalSearcher"]; if (tags == null && !tags.Any()) { return(Enumerable.Empty <IPublishedContent>()); } var criteria = searcher.CreateSearchCriteria(); var query = criteria .Field("__IndexType", "content") .Not().Field("umbracoNaviHide", "1") .Not().Field(" __NodeTypeAlias", "defaultTag") .And().Field("__NodeTypeAlias", "videoPage") .And().GroupedOr(new string[] { "searchTags" }, tags.ToArray()) .Compile(); var result = Umbraco.TypedSearch(query) .Where(x => x.IsVisible()); return(result); }