インクリメンタルインデックス更新
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Sitecore XC、Commerce Engineで変更されたカタログエンティティを定期的に追加または削除することで検索インデックスを更新します。
Commerce Engineは、Sitecoreのマスターおよびウェブインデックスに新しい、変更、削除されたカタログ、カテゴリ、販売可能なアイテムを更新します。増分更新により、Sitecoreで使用される検索プロバイダー(例えばSolr)は、最新のCommerceカタログデータを反映した検索結果を返すことができます。
PlugIn.CatalogIndexing.PolicySet-1.0.0.jsonファイル(c:\inetpub\wwwroot\
以下のコードスニペットは、SitecoreマスターインデックスおよびSitecoreウェブインデックスの変更・削除されたアイテムを追跡するリストを作成する責任のあるポリシーの例を示しています。
//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`1System.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`1System.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マスターやウェブインデックスにカタログエンティティ(カタログ、カテゴリ、販売可能なアイテムを含む)の最新変更を更新するアップデート戦略を定義します。この戦略はバックグラウンドで実行され、エンティティが作成、修正、削除されたかどうかをチェックします。
更新戦略構成は、戦略が作用するインデックスと実行区間を定義します。
インデックス更新戦略が実行されると、新規、変更、削除されたカタログエンティティ(カタログ、カテゴリ、販売可能品目)の管理リストを監視する カタログインデックスミニオン (ItemIncrementalIndexMinion)が呼び出されます。インデックスはそれに応じて更新されます。
インクリメンタルインデックス作成が完了した後、Commerce Engine ConnectはGetCatalogMappingsForIdメソッドを使ってカタログマッピングを取得します。最適なパフォーマンスのために、GetCatalogMappingsForIdはバッチ処理をサポートし、20個のSitecore IDをバッチで返します。
sitecore.commerce.engine.connectors.index.common.configファイル(c:\inetpub\wwwroot\
- CommerceEngineIntervalAsynchronousStrategy クラス
!重要各更新戦略は異なるCommerce Engineリストを監視するように設定する必要があります。複数の更新戦略が同じリストから読み取ると、関連するすべてのインデックスが時間とともに古くなってしまうことがあります。
以下のコードスニペットは、それぞれSitecoreマスターインデックスとSitecoreウェブインデックスのデフォルトの更新戦略の例を示しています。
以下の表は更新戦略の特性を一覧と説明しています。
財産
概要
"IncrementalIndexListName"
作成または更新されたアイテムを追跡するコマースエンジンのリスト名。
"interval"
更新戦略が実行される頻度。
"database"
インデックス化されるアイテム(マスターまたはウェブ)を含むSitecoreデータベースの名前です。
これらの更新戦略は、インデックス設定ファイル( Sitecore.Commerce.Engine.Connectors.Index.Solr.configファイルまたはSitecore.Commerce.Engine.Connectors.Index.Azure.configファイルのいずれか)からの参照を通じてSitecoreインデックスに関連付けられています。
!注Commerce Engine Connectには、indexing.getChildrenToIndexパイプライン内のSitecore.Commerce.Engine.Connect.Pipelines.GetChildrenToIndexプロセッサが含まれており、デフォルトのSitecoreアイテムクローラーがカタログアイテムをインデックス化しないようにし、それらのアイテムが重複インデックスされないようにします。