Try our conversational search powered by Generative AI!

KennyG
Dec 20, 2017
  3769
(3 votes)

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.

Dec 20, 2017

Comments

eGandalf
eGandalf Dec 21, 2017 03:18 PM

Just learned a bit about managing the Find index like this, myself. The [Conditional("DEBUG")] attribute is a great tip! Thanks!

KennyG
KennyG Dec 21, 2017 03:54 PM

Yeah, I could really use some actual Find training instead of just trying to tweak my coworkers' code.

Bob Bolt
Bob Bolt Dec 21, 2017 05:01 PM

https://www.episerver.com/services/education/services-education-courses/developers/episerver-find-for-developers/

Please login to comment.
Latest blogs
Solving the mystery of high memory usage

Sometimes, my work is easy, the problem could be resolved with one look (when I’m lucky enough to look at where it needs to be looked, just like th...

Quan Mai | Apr 22, 2024 | Syndicated blog

Search & Navigation reporting improvements

From version 16.1.0 there are some updates on the statistics pages: Add pagination to search phrase list Allows choosing a custom date range to get...

Phong | Apr 22, 2024

Optimizely and the never-ending story of the missing globe!

I've worked with Optimizely CMS for 14 years, and there are two things I'm obsessed with: Link validation and the globe that keeps disappearing on...

Tomas Hensrud Gulla | Apr 18, 2024 | Syndicated blog

Visitor Groups Usage Report For Optimizely CMS 12

This add-on offers detailed information on how visitor groups are used and how effective they are within Optimizely CMS. Editors can monitor and...

Adnan Zameer | Apr 18, 2024 | Syndicated blog