Sitecore OnPublishEnd Index update strategy - mitikov/KeepSitecoreSimple GitHub Wiki

What is Index update strategy?

Sitecore has an Information retrieval engine OOB. It uses indexes to perform information retrieval faster.

We must decide on how do we want update information in Sitecore Content indexes, so the steps must be taken in order to populate index with fresh data can be names as index update strategy.

John has written a good post describing INDEX UPDATE STRATEGIES that is worth reading to get a high level overview.

How does OnPublishEnd strategy work?

It will subscribe to PublishEnd event (both local and remote) during Initialization, and will produce 'Initializing OnPublishEndAsynchronousStrategy.' message in Sitecore Crawling logs.

As soon as PublishEnd event is raised, it will read new (larger stamp than last index.Summary.LastUpdatedTimestamp already processed) events from Event Queue, and produce a job to update index

EventQueue Processing

Where is last processed row number stored?

The last processes stamp is stored in core->properties table by default, however it is not recommended in high-loaded solutions

It is better to store that index metadata on the file system (data\indexes\properties) as per solution in aforementioned article, which is included into CMS 7.2 U5 ref. 417664

How can I check that strategy updates index ?

  • The difference between index.Summary.LastUpdatedTimestamp and latest event in Event Queue (database.RemoteEvents.Queue.GetLastEvent()) is way toooo big, and there is no massive publish operation going on

  • There are no running/queued index update jobs reported by Jobs Viewer, part of CMS Administration component