チュートリアル: SXAインデックスにCommerceカタログ アイテムを含める

Version: 10.1
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Sitecore XC 9.3以降、Commerce Engineはカタログ エンティティ (カタログ アイテムとカテゴリ) のインデックス作成を担当します。インデックス更新戦略により、Sitecoreインデックス (sitecore_master_indexsitecore_web_index) が最新のカタログ アイテムで最新の状態に保たれ、SXA Storefrontでの商品検索が効果的に有効になります。対照的に、Sitecore Experience Accelerator (SXA) は、デフォルトで異なるインデックス ( sitecore_sxa_master_indexsitecore_sxa_web_index) を使用して、SXA Webサイトでのページ検索を有効にします。ただし、必要に応じて、デフォルトの設定を変更して、Sitecoreマスター インデックスとWebインデックスの代わりに、ページ アイテムに加えてカタログ アイテムをSXAインデックスに含めることができます。

メモ

2つの異なる索引に同じカタログ・データ・セットを含めることはできません。この制限は、マスター索引とWeb索引には実際には同じカタログ・データ・セットが含まれていないため、これらの索引には適用されません。

このチュートリアルでは、次の方法について説明します。

  • SXAインデックスをCommerce Engine Connectに追加する

  • SXAインデックスをGetChildrenToIndexプロセッサに追加します

  • Commerce Engineの検索ポリシーとSolrポリシーを更新する

  • Sitecoreのストアフロント インデックス設定を変更する

手記

このチュートリアルでは、次の作業が既に完了していることを前提としています。

  • Solr Webサイトの指示に従って必要なSXA Solrコアを作成し、新しいSolrコアを作成して初期化します。

  • それに応じて <SXASite>\App_Config\Modules\SXA\Sitecore.XA.Foundation.Search.Solr.configファイルを更新しました。

SXAインデックスをCommerce Engine Connectインデックス設定に追加する

デフォルトでは、CE Connectのデフォルトのコンテンツ検索インデックス作成戦略は、Sitecoreマスター インデックスとWebインデックスを更新します。Commerce Engine Connectの設定をカスタムSXAインデックスの名前で更新する必要があります。

SXAインデックスをCommerce Engine Connectインデックス設定に追加するには、次の手順を実行します。

  1. inetpub\wwwroot\<site>\App_Config\Include\Y.Commerce.Engine\フォルダで、Sitecore.Commerce.Engine.Connectors.Index.Solr.configを開きます。

  2. <index id="sitecore_web_index">で始まるセクションを見つけ、index idの値をSXA Webインデックスの名前に置き換えます (例:

    RequestResponse
    <index id="sitecore_sxa_web_index">
       <strategies hint="list:AddStrategy">
          <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/commerceEngineIntervalAsynchronousStrategyWeb" />
       </strategies>
       <locations hint="list:AddCrawler">
          <crawler type="Sitecore.Commerce.Engine.Connect.Search.Crawlers.CommerceEngineCrawler, Sitecore.Commerce.Engine.Connect">
            <ListName>SitecoreItemIndexingWeb</ListName>
          </crawler>
       </locations>
     </index>
  3. カスタムSXAマスター インデックスを設定に追加します。 <index id="sitecore_master_index"> 設定を定義する既存のブロックをコピーして貼り付け、インデックスIDを <index id="sitecore_sxa_master_index">に変更します。

    例えば:

    RequestResponse
    <index id="sitecore_sxa_master_index">
       <strategies hint="list:AddStrategy">
          <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/commerceEngineIntervalAsynchronousStrategyMaster" />
       </strategies>
       <locations hint="list:AddCrawler">
         <crawler type="Sitecore.Commerce.Engine.Connect.Search.Crawlers.CommerceEngineCrawler, Sitecore.Commerce.Engine.Connect">
             <ListName>SitecoreItemIndexingMaster</ListName>
         </crawler>
       </locations>
    </index>
  4. 変更を保存します。

SXAインデックスをGetChildrenToIndexプロセッサに追加します

カスタムSXAインデックスをSitecore.Commerce.Engine.Connect.Pipelines.GetChildrenToIndexプロセッサのインデックス リストに追加する必要があります。Sitecore XCはCommerceアイテムをインデックスするために独自のクローラーを実装するため、このプロセッサはSitecoreインデックス クローラーがCommerceアイテムに不必要にインデックスを再び作成しないようにします。

カスタムSXAインデックスをプロセッサに追加するには、次の手順を実行します。

  1. C:\inetpub\wwwroot\<CommerceEngine>\App_Config\Include\Y.Commerce.Engineフォルダーで、Sitecore.Commerce.Engine.Connectors.Index.Common.configファイルを開きます。

  2. 次の例に示すように、カスタムSXAマスター インデックスとSXA Webインデックスをインデックスのリストに追加します。

    RequestResponse
    <pipelines>
      <indexing.getChildrenToIndex>
         <!-- 
              Insert our processor first so that we can intercept Commmerce items that we do not want indexed into the below referenced indexes.
              As Commerce uses a separate crawler to index Commerce items, we insert this processor to stop the default crawlers from attempting to index
              Commerce items.
              By default the processor below will skip indexing of children of the following locations or templates:
                Commerce Catalog Folder   ID {334E2B54-F913-411D-B159-A7B16D65242C}
         -->     <processor type="Sitecore.Commerce.Engine.Connect.Pipelines.GetChildrenToIndex, Sitecore.Commerce.Engine.Connect" patch:source="Sitecore.Commerce.Engine.Connectors.Index.Common.config">
            <!-- The list of indexes that we do not want commerce items to be indexed to -->
            <Indexes hint="list:AddString" help="Add index names below to stop crawling of Commerce items by the default crawler">
              <IndexName>sitecore_master_index</IndexName>
              <IndexName>sitecore_web_index</IndexName>
              <IndexName>sitecore_testing_index</IndexName>
              <IndexName>sitecore_suggested_test_index</IndexName>
              <IndexName>sitecore_sxa_master_index</IndexName>
              <IndexName>sitecore_sxa_web_index</IndexName>
      </Indexes

Commerce Engineの検索ポリシーとSolrポリシーを更新する

Commerce Engine検索ポリシー・セットとSolrポリシー・セットの索引名を更新する必要があります。

Commerce Engineの検索ポリシーとSolrポリシーを更新するには:

  1. C:\inetpub\wwwroot\<CommerceEngine>\wwwroot\data\Environments\PlugIn.Search.PolicySet-1.0.0.jsonファイルを開きます。

  2. 次の変更を行います。

    • "Name": "<site>_web_index"を検索し、SXA Webインデックスの名前と一致するように値を変更します (例:"<site>_sxa_web_index")。

    • "Name": "<site>_master_index"を検索し、SXAマスター インデックスの名前と一致するように値を変更します (例:"<site>_sxa_master_index")。

    • "InternalIndexName": "sitecore_web_index"を検索し、SXA Webインデックスの名前と一致する値を変更します (例: "sitecore_sxa_web_index")。

    • "InternalIndexName": "sitecore_master_index"を検索し、SXAマスター インデックスの値と一致するように値を変更します (例: "sitecore_sxa_master_index")。

  3. C:\inetpub\wwwroot\<CommerceEngine>\wwwroot\data\Environments\PlugIn.Search.Solr.PolicySet-1.0.0.jsonファイルを開きます。

  4. 次の変更を行います。

    • "IndexName": "sitecore_web_index"を検索し、SXA Webインデックスの名前と一致するように値を変更します (例: "sitecore_sxa_web_index")。

    • "IndexName": "sitecore_master_index"を検索し、SXAマスター インデックスの名前と一致するように値を変更します (例: "sitecore_sxa_master_index")。

    • "SearchScopeName": "<site>_web_index"を検索し、SXA Webインデックスの名前と一致するように値を変更します (例:"<site>_sxa_web_index"

    • "SearchScopeName": "<site>_master_index"を検索し、SXAマスター インデックスの名前と一致するように値を変更します (例:"<site>_sxa_master_index"

  5. 変更を保存します。

  6. Commerce Engineをブートストラップ して、設定の変更を登録します。

  7. IISマネージャーで、IISのリセットを実行します。

  8. Redisキャッシュをクリアします

Sitecoreのストアフロント インデックス設定を変更する

SXAインデックスを使用するようにストアフロントのインデックス設定を変更するには、次の手順を実行します。

  1. Sitecoreにログインします。

  2. コンテンツ エディターで、Sitecore/Storefront/Settings/Site Grouping/Storefrontアイテムに移動します。

  3. Indexingセクションで、インデックス名を更新して、SXA Webインデックスとマスター インデックスの名前を反映させます。

    例えば:

  4. Webサイトを公開します

  5. SXAマスター インデックスとWebインデックスを再構築します。

何かフィードバックはありますか?

この記事を改善するための提案がある場合は、