使用舊版配置檔的 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 是預設更新鏈的一部分,會自動注入到您的任何自訂更新鏈中,因此您實際上不需要對此功能進行任何變更。但是,如果您希望明確地加入它,您仍然可以將其加入 solrconfig.xml 檔案中,作為 updateRequestProcessorChain 的一部分。例如

    <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 會跳過更新已在其他節點上執行的處理器。

    如需關於預設更新請求處理器鏈和選項的更多資訊,請參閱 預設更新請求處理器鏈 章節。