Disabling the scheduler also stops event-based indexing in Optimizely
In Optimizely Search & Navigation, there are two types of indexing.
1) Event-based indexing.
When a page is created, updated, moved, or deleted, the search index is updated for that page. If the URL segment is updated, or the page is moved or deleted, all descendant pages are updated as well.
2) Scheduled indexing.
A scheduled job can run at a configured interval and reindex all content.
It is possible to disable the scheduler, which triggers all scheduled jobs globally, like this:
{
"EPiServer": {
"Cms": {
"Scheduler": {
"Enabled": false
}
}
}
}
That will make scheduled indexing stop working. That makes sense.
However, event-based indexing will also stop working, and the reason might not be that obvious.
When a page triggers event-based indexing, what actually happens? The content that should be (re)indexed is added to the database table tblFindIndexQueue. If the scheduler is disabled, this queue is not processed.
If the queue were processed by a scheduled job visible in the UI, that would make sense. But it isn't.
After checking with Optimizely support, they confirmed that this behavior is intentional.
The reason is that in Optimizely's own cloud platform, Optimizely DXP, you may run a separate instance that runs only the scheduler. In that case, you disable the scheduler in your application instances. In these situations, it makes sense for indexing to run only on the scheduler instance.
Now you know too!