mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 19:54:57 +08:00
#18617: Speeding up search results list
Work Item: 18617 --HG-- branch : 1.x extra : transplant_source : Q%04%28g%BC%86%D1%B8q%7D%E1%FB%CF%097v%A0%A8%D0L
This commit is contained in:
@@ -46,7 +46,7 @@ namespace Orchard.Search.Controllers {
|
||||
dynamic Shape { get; set; }
|
||||
|
||||
public ActionResult Index(PagerParameters pagerParameters, string q = "") {
|
||||
Pager pager = new Pager(_siteService.GetSiteSettings(), pagerParameters);
|
||||
var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters);
|
||||
var searchFields = Services.WorkContext.CurrentSite.As<SearchSettingsPart>().SearchedFields;
|
||||
|
||||
IPageOfItems<ISearchHit> searchHits = new PageOfItems<ISearchHit>(new ISearchHit[] { });
|
||||
@@ -62,15 +62,13 @@ namespace Orchard.Search.Controllers {
|
||||
}
|
||||
|
||||
var list = Shape.List();
|
||||
foreach (var contentItem in searchHits.Select(searchHit => _contentManager.Get(searchHit.ContentItemId))) {
|
||||
// ignore search results which content item has been removed or unpublished
|
||||
if(contentItem == null){
|
||||
searchHits.TotalItemCount--;
|
||||
continue;
|
||||
}
|
||||
|
||||
var foundIds = searchHits.Select(searchHit => searchHit.ContentItemId);
|
||||
// ignore search results which content item has been removed or unpublished
|
||||
var foundItems = _contentManager.GetMany<IContent>(foundIds, VersionOptions.Published, new QueryHints());
|
||||
foreach (var contentItem in foundItems) {
|
||||
list.Add(_contentManager.BuildDisplay(contentItem, "Summary"));
|
||||
}
|
||||
searchHits.TotalItemCount -= foundIds.Count() - foundItems.Count();
|
||||
|
||||
var pagerShape = Shape.Pager(pager).TotalItemCount(searchHits.TotalItemCount);
|
||||
|
||||
|
Reference in New Issue
Block a user