1. 行政

増分インデックス更新

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

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

Sitecore XCは、Commerce Engineで変更されたアイテムを定期的に追加または削除することで、検索のインデックスを最新の状態に保ちます。

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

たとえば、次のコード スニペットは、Sellable商品エンティティを監視し、変更された商品を保存する2つのリストを作成する (増分インデックス更新用) ポリシーを定義しています。

    "$type": "Sitecore.Commerce.Plugin.Catalog.SitecoreCatalogIndexingPolicy, Sitecore.Commerce.Plugin.Catalog",
    "Name": "SellableItemsIndexMaster",
    "IncrementalListName": "SellableItemsIncrementalIndexMaster",
    "DeletedListName": "SellableItemsDeletedIndexMaster",
    "EntityTypeNames": {
      "$type": "System.Collections.Generic.List`1[[System.String, mscorlib]], mscorlib",
      "$values": [
        "Sitecore.Commerce.Plugin.Catalog.SellableItem, Sitecore.Commerce.Plugin.Catalog"
      ]
    },
    "IsMasterIndex": true

財産

形容

Name

ポリシーの一意の名前。

IncrementalListName

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

DeletedListName

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

EntityTypeNames

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

IsMasterIndex

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

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

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

インデックス更新戦略

インデックス更新戦略は、Commerce Engineの管理リストに含まれる情報に基づいて特定のインデックスを更新する役割を担います。

ストラテジーはバックグラウンドで実行され、エンティティが作成、変更、または削除されたかどうかを確認します。更新戦略が作用するインデックスとリストは、更新戦略の実行間隔と同様に、更新戦略の構成で指定されます。

更新戦略が実行されると、指定されたリストをCommerce Engineにクエリします。その後、更新戦略は、管理リストで定義されているように、削除されたアイテムを削除し、新しいアイテムまたは変更されたアイテムを追加することで、インデックスをそれに応じて更新します。更新戦略では、コンテンツが処理されると、Commerce Engineリストもクリアされます。

sitecore.commerce.engine.connectors.index.common.configファイル (c:\inetpub\wwwroot\<site>\App_Config_Include\Y.Commerce.Engineフォルダにあります) には、すべての更新方法を定義する設定が格納されています。デフォルトでは、以下のインデックス更新ストラテジクラスが利用可能です。

  • SellableItemsInterval非同期戦略

  • カテゴリーIntervalAsynchronousStrategy

  • カタログ間隔非同期戦略

各戦略は、それぞれSellableItem、Category、Catalogという異なるタイプのCommerceエンティティを追跡する役割を担います。

大事な

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

たとえば、次のコード スニペットは、Commerce EngineでSellableアイテム エンティティへの変更を監視するSitecoreマスター インデックスの更新戦略を定義しています。

  <sellableItemsIntervalAsynchronousStrategyMaster type="Sitecore.Commerce.Engine.Connect.Search.Strategies.SellableItemsIntervalAsynchronousStrategy, Sitecore.Commerce.Engine.Connect">
   <IncrementalIndexListName>SellableItemsIncrementalIndexMaster</IncrementalIndexListName>
   <DeletedIndexListName>SellableItemsDeletedIndexMaster</DeletedIndexListName>
   <ItemsToTake>100</ItemsToTake>
   <Environments hint="list">
     <environment>HabitatAuthoring</environment>
   </Environments>
   <param desc="interval">00:10:00</param>
   <param desc="database">master</param>
 </sellableItemsIntervalAsynchronousStrategyMaster>

財産

形容

IncrementalIndexListName

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

DeletedIndexListName

削除された品目を追跡するCommerce Engineのリストの名前。

ItemsToTake

更新方法が各バッチで処理する項目の最大数。このプロパティを使用して、更新戦略とCommerce Engine間の通信を調整できます。

Environments

更新戦略が増分更新を実行するときに処理する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回インデックス化されないようにします。

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