protected override IEnumerable <IContent> GetContent(ContentQueryParameters parameters) { var queryText = HttpUtility.HtmlDecode(parameters.AllParameters["queryText"]); var area = ProviderConstants.PageArea; var contentLink = ContentReference.Parse(queryText); if (contentLink.ProviderName == ProviderConstants.CatalogProviderKey) { area = ProviderConstants.CommerceCatalogArea; } var searchQuery = new Query(queryText); searchQuery.Parameters.Add(Core.Models.Constants.MoreLikeThisId, queryText); var contentReferences = Enumerable.Empty <ContentReference>(); var searchProvider = _searchProvidersManager.GetEnabledProvidersByPriority(area, true).FirstOrDefault(); if (searchProvider != null) { contentReferences = searchProvider.Search(searchQuery) .Select(r => ContentReference.Parse(r.Metadata["Id"])) .Distinct(); } return(_contentRepository.GetItems(contentReferences, _languageSelectorFactory.AutoDetect(parameters.AllLanguages))); }
protected override IEnumerable <IContent> GetContent(ContentQueryParameters parameters) { var queryText = HttpUtility.HtmlDecode(parameters.AllParameters["queryText"]); var searchQuery = new Query(queryText); var contentReferences = Enumerable.Empty <ContentReference>(); var searchProvider = _searchProvidersManager.GetEnabledProvidersByPriority("CMS/Pages", true).FirstOrDefault(); if (searchProvider != null) { contentReferences = searchProvider.Search(searchQuery).Select(result => ContentReference.Parse(result.Metadata["Id"])).Distinct(); } return(_contentRepository.GetItems(contentReferences, _languageSelectorFactory.AutoDetect(parameters.AllLanguages))); }
public ViewResult Index(SearchPage currentPage, string q) { var providers = _searchProvidersManager.GetEnabledProvidersByPriority("CMS/pages", true); var hits = providers.SelectMany(p => p.Search(new Query(q))).ToList(); var model = new SearchContentModel(currentPage) { Hits = hits.Select(x => new SearchContentModel.SearchHit { Url = x.Url, Excerpt = x.PreviewText, Title = x.Title }), NumberOfHits = hits.Count, SearchServiceDisabled = false, SearchedQuery = q }; return(View(model)); }