Staying under the document limit when using the Find developer index
When working on a site migration with a LOT of content we often find ourselves running up against the 10,000 document limitation on a developer index.
I learned this trick from a coworker. You can use an Initialization Module to get some fine-grained control over what is getting added to the index.
using System; using System.Diagnostics; using System.Linq; using AlloyInitModuleTest.Models.Media; using AlloyInitModuleTest.Models.Pages; using EPiServer.Core; using EPiServer.Find.ClientConventions; using EPiServer.Find.Cms; using EPiServer.Find.Cms.Conventions; using EPiServer.Find.Cms.Module; using EPiServer.Find.Framework; using EPiServer.Framework; using EPiServer.Framework.Initialization; [InitializableModule] [ModuleDependency(typeof(EPiServer.Web.InitializationModule))] public class SearchConventionInitializationModule : IInitializableModule { public void Initialize(InitializationEngine context) { //Add initialization logic, this method is called once after CMS has been initialized this.SetTypesToIndex(ContentIndexer.Instance.Conventions); } [Conditional("DEBUG")] private void SetTypesToIndex(IContentIndexerConventions conventions) { // start from a clean slate conventions.ForInstancesOf<ContentData>().ShouldIndex(x => false); //one by one turn on or off as you develop the site, remember to reindex conventions.ForInstancesOf<ImageFile> ().ShouldIndex(x => false); conventions.ForInstancesOf<GenericMedia> ().ShouldIndex(x => false); conventions.ForInstancesOf<LandingPage> ().ShouldIndex(x => true); } public void Uninitialize(InitializationEngine context) { //Add uninitialization logic } }
[Conditional("DEBUG")] allows us to limit this to debug builds and index everything in production.
Just learned a bit about managing the Find index like this, myself. The [Conditional("DEBUG")] attribute is a great tip! Thanks!
Yeah, I could really use some actual Find training instead of just trying to tweak my coworkers' code.
https://www.episerver.com/services/education/services-education-courses/developers/episerver-find-for-developers/