Azure SearchインデックスのIndexingロールの有効化について


説明

Sitecoreの検索インデックスは、コンテンツの変更が発生すると、 自動的に更新されます。これは、インデックス更新戦略で制御されます。SolrおよびAzure Searchプロバイダは、Sitecore XPインスタンス間での検索インデックスが共有できるようにします。この場合、インデックス作成を実施するSitecore XPインスタンスは1つで十分です。Indexingロールがないインスタンスでは、インデックス更新戦略を無効にすることができます。

解決策

  1. \App_Config\Include\zzzフォルダにSitecore.ContentSearch.Azure.IndexingRole.configファイルを作成します。以下の例に従って、デフォルトの検索インデックスのIndexingサブ ロールを有効にします。
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" 
    xmlns:role="http://www.sitecore.net/xmlconfig/role/" xmlns:search="http://www.sitecore.net/xmlconfig/search/">
      <sitecore search:require="Azure">
        <contentSearch>
          <configuration type="Sitecore.ContentSearch.ContentSearchConfiguration, Sitecore.ContentSearch">
            <indexes hint="list:AddIndex">
              <index id="sitecore_core_index" role:require="Standalone or ContentManagement">
                <strategies>
                  <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/intervalAsyncCore">
                    <patch:delete />
                  </strategy>
                  <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/manual" 
    role:require="ContentManagement and !Indexing" />
                  <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/intervalAsyncCore" 
    role:require="Standalone or (ContentManagement and Indexing)" />
                </strategies>
              </index>
              <index id="sitecore_web_index" role:require="Standalone or ContentDelivery or ContentManagement">
                <strategies>
                  <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/onPublishEndAsyncSingleInstance">
                    <patch:delete />
                  </strategy>
                  <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/manual"
    role:require="(ContentManagement and !Indexing) or (ContentDelivery and !Indexing)"/>
                  <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/onPublishEndAsyncSingleInstance" 
    role:require="Standalone or (ContentManagement and Indexing) or (ContentDelivery and Indexing)" />
                </strategies>
              </index>
              <index id="sitecore_master_index" role:require="Standalone or ContentManagement">
                <strategies>
                  <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/syncMaster">
                    <patch:delete />
                  </strategy>
                  <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/manual" 
    role:require="ContentManagement and !Indexing" />
                  <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/intervalAsyncMaster" 
    role:require="Standalone or (ContentManagement and Indexing)" />
                </strategies>
              </index>
            </indexes>
          </configuration>
        </contentSearch>
      </sitecore>
    </configuration>
    
    カスタム インデックスも、同様に更新する必要があります。
  2. インデックスの更新を実施するSitecore XPインスタンスを選択します。このインスタンスのWeb.configファイルにIndexingサブ ロールを追加します。例:
    <add key="role:define" value="ContentManagement, Indexing"/>