带有旧版配置文件的 SolrCloud
如果您要从用户管理的集群迁移到 SolrCloud,此信息可能会有帮助。
Solr 随附的示例配置中已设置所有必需的配置。如果您要迁移旧配置文件,则只需添加以下内容。如果您打算在 SolrCloud 模式下使用 Solr,请不要从新 Solr 实例中删除这些文件和参数。
这些属性存在于 3 个文件中:schema.xml
或 managed-schema.xml
、solrconfig.xml
和 solr.xml
。
-
在 schema 文件中,您必须定义一个
_version_
字段<field name="_version_" type="long" indexed="true" stored="true" multiValued="false"/>
-
在
solrconfig.xml
中,您必须定义一个UpdateLog
。这应在updateHandler
部分中定义。<updateHandler> ... <updateLog> <str name="dir">${solr.data.dir:}</str> </updateLog> ... </updateHandler>
-
DistributedUpdateProcessor 是默认更新链的一部分,并且会自动注入到任何自定义更新链中,因此实际上无需对该功能进行任何更改。但是,如果您希望显式添加它,您仍然可以将其作为
updateRequestProcessorChain
的一部分添加到solrconfig.xml
文件中。例如<updateRequestProcessorChain name="sample"> <processor class="solr.LogUpdateProcessorFactory" /> <processor class="solr.DistributedUpdateProcessorFactory"/> <processor class="my.package.UpdateFactory"/> <processor class="solr.RunUpdateProcessorFactory" /> </updateRequestProcessorChain>
如果您不希望将 DistributedUpdateProcessFactory 自动注入到链中(例如,如果您希望使用 SolrCloud 功能,但希望自己分发更新),则在链中指定
NoOpDistributingUpdateProcessorFactory
更新处理器工厂<updateRequestProcessorChain name="sample"> <processor class="solr.LogUpdateProcessorFactory" /> <processor class="solr.NoOpDistributingUpdateProcessorFactory"/> <processor class="my.package.MyDistributedUpdateFactory"/> <processor class="solr.RunUpdateProcessorFactory" /> </updateRequestProcessorChain>
在更新过程中,Solr 会跳过已在其他节点上运行的更新处理器。
有关默认更新请求处理器链和选项的更多信息,请参阅章节 默认更新请求处理器链。