From c49560f39dd635d2e984c50970495ca3a84f3bda Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 30 Sep 2014 12:08:21 +1000 Subject: [PATCH] Updates the member indexer to re-index all members WAY faster than before. Updates the search controller to limit search results to 200 otherwise a ton of CPU can be used if there's thousands of results. --- src/Umbraco.Web/Editors/EntityController.cs | 6 ++++-- src/UmbracoExamine/UmbracoMemberIndexer.cs | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web/Editors/EntityController.cs b/src/Umbraco.Web/Editors/EntityController.cs index 75f0be49c1..c73a63070d 100644 --- a/src/Umbraco.Web/Editors/EntityController.cs +++ b/src/Umbraco.Web/Editors/EntityController.cs @@ -6,6 +6,7 @@ using System.Web.Http; using System.Web.Http.ModelBinding; using AutoMapper; using Examine.LuceneEngine; +using Examine.LuceneEngine.Providers; using Newtonsoft.Json; using Umbraco.Core; using Umbraco.Core.Logging; @@ -282,7 +283,7 @@ namespace Umbraco.Web.Editors throw new NotSupportedException("The " + typeof(EntityController) + " currently does not support searching against object type " + entityType); } - var internalSearcher = ExamineManager.Instance.SearchProviderCollection[searcher]; + var internalSearcher = (LuceneSearcher)ExamineManager.Instance.SearchProviderCollection[searcher]; //build a lucene query: // the __nodeName will be boosted 10x without wildcards @@ -374,7 +375,8 @@ namespace Umbraco.Web.Editors var raw = internalSearcher.CreateSearchCriteria().RawQuery(sb.ToString()); - var result = internalSearcher.Search(raw); + //limit results to 200 to avoid huge over processing (CPU) + var result = internalSearcher.Search(raw, 200); switch (entityType) { diff --git a/src/UmbracoExamine/UmbracoMemberIndexer.cs b/src/UmbracoExamine/UmbracoMemberIndexer.cs index 582bb248fe..c55a73c7ff 100644 --- a/src/UmbracoExamine/UmbracoMemberIndexer.cs +++ b/src/UmbracoExamine/UmbracoMemberIndexer.cs @@ -95,7 +95,7 @@ namespace UmbracoExamine int total; members = ApplicationContext.Current.Services.MemberService.GetAll(pageIndex, pageSize, out total); - //AddNodesToIndex(GetSerializedMembers(members), type); + AddNodesToIndex(GetSerializedMembers(members), type); pageIndex++;