If you are migrating from a non-SolrCloud environment to SolrCloud, this information may be helpful.
All of the required configuration is already set up in the sample configurations shipped with Solr. You only need to add the following if you are migrating old configuration files. Do not remove these files and parameters from a new Solr instance if you intend to use Solr in SolrCloud mode.
These properties exist in 3 files: schema.xml
, solrconfig.xml
, and solr.xml
.
-
In
schema.xml
, you must have a_version_
field defined:<field name="_version_" type="long" indexed="true" stored="true" multiValued="false"/>
-
In
solrconfig.xml
, you must have anUpdateLog
defined. This should be defined in theupdateHandler
section.<updateHandler> ... <updateLog> <str name="dir">${solr.data.dir:}</str> </updateLog> ... </updateHandler>
-
The DistributedUpdateProcessor is part of the default update chain and is automatically injected into any of your custom update chains, so you don’t actually need to make any changes for this capability. However, should you wish to add it explicitly, you can still add it to the
solrconfig.xml
file as part of anupdateRequestProcessorChain
. For example:<updateRequestProcessorChain name="sample"> <processor class="solr.LogUpdateProcessorFactory" /> <processor class="solr.DistributedUpdateProcessorFactory"/> <processor class="my.package.UpdateFactory"/> <processor class="solr.RunUpdateProcessorFactory" /> </updateRequestProcessorChain>
If you do not want the DistributedUpdateProcessFactory auto-injected into your chain (for example, if you want to use SolrCloud functionality, but you want to distribute updates yourself) then specify the
NoOpDistributingUpdateProcessorFactory
update processor factory in your chain:<updateRequestProcessorChain name="sample"> <processor class="solr.LogUpdateProcessorFactory" /> <processor class="solr.NoOpDistributingUpdateProcessorFactory"/> <processor class="my.package.MyDistributedUpdateFactory"/> <processor class="solr.RunUpdateProcessorFactory" /> </updateRequestProcessorChain>
In the update process, Solr skips updating processors that have already been run on other nodes.