インデックス更新のジョブ数を削減する


説明

Sitecore CMS・XPは、検索インデックスを常に最新の状態に維持するために、インデックス更新戦略を使用します。

インデックス更新戦略は、実際の更新を実施するインデックス更新ジョブをキューに入れます。

INFO Job started: Index_Update_IndexName=sitecore_master_index

ジョブ名にインデックス名が存在していることは、以下のことを意味します。

頻繁にコンテンツが変更される環境では、Synchronousインデックス更新戦略は、アイテムの変更ごとに個別の更新ジョブを作成するため、変更についていけなくなる可能性があります。

Interval Asynchronousインデックス更新戦略に切り替えることで、リソースの消費を最適化し、インデックス更新の処理速度を向上させることができます。

解決策

  1. 頻繁に開始されるインデックス更新ジョブがあるかどうかを確認します。これを確認するには、2つ方法があります。
    • /sitecore/admin/jobs.aspxページを使用する方法
      このページには、Running、Queued、およびFinishedジョブのリストが表示されます。キューに入れたジョブのリストから同じジョブが短時間に何度もキューに入れたかどうかを確認します。
      Sitecoreのログ ファイルを使用する方法
      特定のインデックス名のインデックス更新ジョブがどのぐらいの頻度で開始されているかを確認します。例えば、以下のようなログ行を探します。
      INFO Job started: Index_Update_IndexName=sitecore_master_index
  2. 問題のある検索インデックスに対応するインデックス更新戦略を見つけます。例:
    <index id="sitecore_master_index" ...>
      ...
      <strategies hint="list:AddStrategy">
        <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/syncMaster" />
      </strategies>
      ...
    </index>
  3. インデックス更新戦略をSynchronousからInterval Asynchronousに切り替えます:
    <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/intervalAsyncMaster" />
  4. 必要に応じて、戦略の間隔を調整します:
    <intervalAsyncMaster type="Sitecore.ContentSearch.Maintenance.Strategies.IntervalAsynchronousStrategy, Sitecore.ContentSearch" ...>
      <param desc="database">master</param>
      <param desc="interval">00:00:05</param>
      ...
    </intervalAsyncMaster>

備考

「sitecore_suggested_test_indexの再構築が頻繁に実施される」既知の問題が、ご使用のSitecore XPバージョンで発生するかどうかを確認するには、以下の記事をご参照ください:
https://sitecore.service-now.com/kb?id=kb_article_view&sysparm_article=KB1000652