How to speed up processing of the indexing queue

Vote:
 

When an episerver page is published or edited, a reference to the page is added to the SQL table tblFindIndexQueue and then the rows in this table are processed.

At some periods of the year our editors publish a large number of large documents (equal to some hundred A4 pages each), and the indexing queue grows large because its items are processed quite slowly.

If we do a full reindex using "EPiServer Find Content Indexing Job" large documents like this are reindexed much, much faster. Is there any settings, or magic, that can speed up the slow indexing queue?

#176190
Edited, Mar 13, 2017 15:19
Vote:
 

You can implement your own queue if you like. Create your own implementation of "EPiServer.Find.Cms.ContentChangedEventStore", and register it in the IOC container (initialization module). The reason it's slow is because it involves a SQL database.

I have also written about some settings that can be set for the queue here: http://world.episerver.com/forum/developer-forum/EPiServer-Search/Thread-Container/2017/2/find-commerce-and-service-api/?pageIndex=1#reply

#176224
Edited, Mar 14, 2017 8:45
Vote:
 
#176225
Mar 14, 2017 8:46
Vote:
 

The setting indexingQueueBatchSize has a defaultvalue of 500.

I performed the following test:

  • I added a blocking row to the table tblFindIndexQueue, i.e. a row with an invalid value in the Item-column, to stop the queue from being processed.
  • I published some new pages, filling the table with additional 25 rows.
  • I removed the blocking row from the table tblFindIndexQueue, and started a stopwatch.
  • One line got processed every 5 seconds.
  • After two minutes the table tblFindIndexQueue was empty

Why are the the rows processed one by one, and not in batches of 500?

#176272
Mar 14, 2017 16:20
Vote:
 

How about not using the Find index queue and just hooking into content events and submitting changes to the IClient.Index() right away?

#176737
Mar 24, 2017 10:35
Vote:
 

Hi

I got some code from Episerver regarding this to speed up the Que, but the class to inherit from, ContentChangedEventStore, does not exist in our EPiServer.Find.Cms namespace.

Am I missing something or do we have the wrong version of Find?
Find .NET API-version: 11.0.0.3701

#180260
Jul 04, 2017 14:25
Vote:
 

Christoffer Nordling: You need to upgrade to a later version

#180261
Jul 04, 2017 14:28
Vote:
 

Ok, thank you for very quick reply :)

#180273
Jul 05, 2017 8:41