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));
        }