带有旧版配置文件的 SolrCloud

如果您要从用户管理的集群迁移到 SolrCloud,此信息可能会有帮助。

Solr 随附的示例配置中已设置所有必需的配置。如果您要迁移旧配置文件,则只需添加以下内容。如果您打算在 SolrCloud 模式下使用 Solr,请不要从新 Solr 实例中删除这些文件和参数。

这些属性存在于 3 个文件中:schema.xmlmanaged-schema.xmlsolrconfig.xmlsolr.xml

  1. 在 schema 文件中,您必须定义一个 _version_ 字段

    <field name="_version_" type="long" indexed="true" stored="true" multiValued="false"/>
  2. solrconfig.xml 中,您必须定义一个 UpdateLog。这应在 updateHandler 部分中定义。

    <updateHandler>
      ...
      <updateLog>
        <str name="dir">${solr.data.dir:}</str>
      </updateLog>
      ...
    </updateHandler>
  3. 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 会跳过已在其他节点上运行的更新处理器。

    有关默认更新请求处理器链和选项的更多信息,请参阅章节 默认更新请求处理器链