増分インデックス更新

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

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

Sitecore XCは、Commerce Engineで変更されたカタログ エンティティを定期的に追加または削除することで、検索インデックスを更新します。

Commerce Engineは、Sitecoreマスター インデックスとWebインデックスを、新規、変更、または削除されたカタログ、カテゴリ、およびSellableアイテムで更新します。増分更新により、Sitecoreが使用する検索プロバイダー (Solrなど) は、最新のCommerceカタログ データを反映した検索結果を返すことができます。

PlugIn.CatalogIndexing.PolicySet-1.0.0.jsonファイル (c:\inetpub\wwwroot\<environment>\wwwroot\data\Environmentsフォルダーにあります) は、Commerce Engineが変更を監視するカタログ エンティティ タイプと、Commerce Engineに追加、変更、または削除されたエンティティに関する情報を格納するために保持するリストを定義します。IncrementalListNameは、変更されたエンティティを追跡するリストを定義します。このDeleteListNameは、削除されたエンティティを追跡するリストを定義します。カタログ インデックス作成ミニオンは、これらのリストを監視します。

次のコード スニペットは、Sitecoreマスター インデックスとSitecore Webインデックスの変更および削除されたアイテムを追跡するリストを作成するポリシーの例を示しています。

//Policy for the master index
{ 
 "$type": "Sitecore.Commerce.Plugin.Catalog.SitecoreCatalogIndexingPolicy, Sitecore.Commerce.Plugin.Catalog", 
 "Name": "CatalogItemsIndexMaster",
 "IncrementalListName":"CatalogItemsIncrementalIndexMaster",
 "DeletedListName":"CatalogItemsDeletedIndexMaster",
 "EntityTypeNames": [
   "$type":"System.Collections.Generic.List`1[[System.String, mscorlib]], mscorlib"
   "$values": [     
    "Sitecore.Commerce.Plugin.Catalog.Catalog, Sitecore.Commerce.Plugin.Catalog",
    "Sitecore.Commerce.Plugin.Catalog.Category, Sitecore.Commerce.Plugin.Catalog", 
    "Sitecore.Commerce.Plugin.Catalog.SellableItem, Sitecore.Commerce.Plugin.Catalog"
  ]
},
 "IsMasterIndex": true

//Policy for the web index
{
 "$type": "Sitecore.Commerce.Plugin.Catalog.SitecoreCatalogIndexingPolicy, Sitecore.Commerce.Plugin.Catalog",
 "Name": "CatalogItemsIndexWeb",
 "IncrementalListName": "CatalogItemsIncrementalIndexWeb",
 "DeletedListName": "SellableItemsDeletedIndexMaster",
 "EntityTypeNames": {
   "$type": "System.Collections.Generic.List`1[[System.String, mscorlib]], mscorlib",
   "$values": [
    "Sitecore.Commerce.Plugin.Catalog.Catalog, Sitecore.Commerce.Plugin.Catalog",
    "Sitecore.Commerce.Plugin.Catalog.Category,
Sitecore.Commerce.Plugin.Catalog",
    "Sitecore.Commerce.Plugin.Catalog.SellableItem,
Sitecore.Commerce.Plugin.Catalog"
  ]
},
 "IsMasterIndex": false

次の表に、インデックスのプロパティと説明を示します。

財産

形容

Name

ポリシーの一意の名前。

IncrementalListName

新しいエンティティと更新されたエンティティを追跡するために作成するマネージド リストの名前。

DeletedListName

削除されたエンティティを追跡するために作成するマネージド リストの名前。

EntityTypeNames

マネージド リストで追跡する .NETエンティティ型の一覧。

IsMasterIndex

リストがSitecoreマスター インデックスのアイテムを追跡しているかどうかを指定します。

trueに設定すると、Commerce Engineはすべての変更を追跡します。

falseに設定すると、Commerce Engineは公開された変更のみを追跡します。

Sitecoreのカタログ エンティティのインデックス更新戦略

Commerce Engineは、カタログ エンティティ (カタログ、カテゴリ、販売可能商品を含む) に対する最新の変更でSitecoreマスター インデックスとWebインデックスを更新する更新戦略を定義します。この方法はバックグラウンドで実行され、エンティティが作成、変更、または削除されたかどうかを確認します。

更新ストラテジーの設定では、ストラテジーが作用するインデックスと、ストラテジーの実行間隔を定義します。

インデックス更新戦略が実行されると、新規、変更、または削除されたカタログ エンティティ (カタログ、カテゴリ、販売可能商品) の管理リストを監視する カタログ インデックス作成ミニオン (ItemIncrementalIndexMinion) が呼び出されます。その後、インデックスはそれに応じて更新されます。

増分インデックス作成が完了すると、Commerce Engine ConnectはGetCatalogMappingsForIdメソッドを使用してカタログ マッピングをフェッチします。最適なパフォーマンスを得るために、GetCatalogMappingsForIdはバッチ処理をサポートし、Sitecore IDを20のバッチで返します。

sitecore.commerce.engine.connectors.index.common.configファイル (c:\inetpub\wwwroot\<site>\App_Config_Include\Y.Commerce.Engineフォルダーにあります) には、Sitecoreコンテンツ アイテム検索用にインデックス化されたCommerceエンティティの更新戦略を定義する設定が格納されています。次のインデックス更新戦略クラスは既定で使用でき、カタログ、カテゴリ、および販売可能なエンティティの追跡を担当します。

  • CommerceEngineIntervalAsynchronousStrategyクラス

大事な

各更新戦略は、異なるCommerce Engineリストを監視するように構成する必要があります。複数の更新ストラテジが同じリストから読み取られると、関連付けられているすべてのインデックスが時間の経過とともに古くなる可能性があります。

次のコード スニペットは、Sitecoreマスター インデックスとSitecore Webインデックスのそれぞれに対するデフォルトの更新戦略の例を示しています。

<commerceEngineIntervalAsynchronousStrategyMaster role:require="Standalone or ContentManagement" type="Sitecore.Commerce.Engine.Connect.Search.Strategies.CommerceEngineIntervalAsynchronousStrategy, Sitecore.Commerce.Engine.Connect">
    <IncrementalIndexListName>CatalogItemsIncrementalIndexMaster</IncrementalIndexListName>
	  <param desc="interval">00:10:00</param>
	  <param desc="database">master</param>
</commerceEngineIntervalAsynchronousStrategyMaster>
<commerceEngineIntervalAsynchronousStrategyWeb role:require="Standalone or ContentManagement" type="Sitecore.Commerce.Engine.Connect.Search.Strategies.CommerceEngineIntervalAsynchronousStrategy, Sitecore.Commerce.Engine.Connect">
    <IncrementalIndexListName>CatalogItemsIncrementalIndexWeb</IncrementalIndexListName>
          <param desc="interval">00:10:00</param>
          <param desc="database">web</param>
</commerceEngineIntervalAsynchronousStrategyWeb>

次の表に、更新方法のプロパティの一覧と説明を示します。

財産

形容

"IncrementalIndexListName"

作成または更新された品目を追跡するCommerce Engineのリストの名前。

"interval"

更新戦略が実行される頻度。

"database"

インデックスが作成されるアイテムを含むSitecoreデータベースの名前 (マスターまたはweb)。

これらの更新戦略は、インデックス設定ファイル ( Sitecore.Commerce.Engine.Connectors.Index.Solr.configファイルまたはSitecore.Commerce.Engine.Connectors.Index.Azure.configファイル) からの参照を通じてSitecoreインデックスに関連付けられます。

メモ

Commerce Engine Connectには、デフォルトのSitecoreアイテム クローラーがカタログ アイテムにインデックスを作成するのを防ぐSitecore.Commerce.Engine.Connect.Pipelines.GetChildrenToIndexプロセッサ ( indexing.getChildrenToIndexパイプライン内) が含まれており、これらのアイテムが2回インデックス化されないようにします。

この記事を改善するための提案がある場合は、 お知らせください!