Just read through the index update strategies document below but couldn't get the clear answer on which strategy is best for SOLR search implementation:
https://doc.sitecore.net/sitecore_experience_platform/search_and_indexing/index_update_strategies
We have setup the master and slave Solr endpoints where master will be used for create/update. And slave for reading only.
Appreciate if you could suggest the indexing strategy to be used for:
Content Authoring
Content Delivery
Solution is hosted in azure web apps and content delivery can be scaled up or down from 1-N number at any time.
I'm planning to configure below:
- Only CA have a OnPublishEndAsync
- All CDs will not have any indexing strategy.
Appreciate if you could suggest a solution that has worked for you. Also how do we disable indexing strategy?
Thanks.
Usually when you use replication in Solr (master + slave Solr servers), it should be configured like that:
Content Authoring (CM server):
- connects to Solr master server.
- It runs
syncMaster
strategy for master
database, and onPublishEndAsync
for web
database.
Content Delivery (CD servers):
- connects to Solr slave server (or to some load balancer if there are multiple Solr slave servers).
- has all the indexing strategies set to
manual
- they should NEVER update Slave solr servers.
With this solution, CD servers always can get results from Solr, even if there is full index rebuild in progress (this happens on Master
Solr server and data is copied to Slaves
after it's finished).
You should think about having 2 Solr Slave
servers and load balancer for them. If you do this:
- If Solr
master
is down for some reason, slaves
still answers to requests from CD boxes. You can safely restart master
, reindex, and the only thing you lost is that you didn't have 100% up to date search results on CD for some time.
- If one of the Solr
slave
servers is down, second slave
server still answers to the request and load balancer should redirect all the traffic to the slave
server which works.