Azure Searchでのダウンタイムなしのインデックス再構築
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Azure Searchは今後廃止され、Sitecoreは将来のリリースでこのサービスのサポートを提供しなくなります。
Azure Search Switch On Rebuild機能を使用して、Sitecore Searchインデックスの完全な再構築中に検索機能のダウンタイムを回避します。
SwitchOnRebuild機能では、スケーリングされた環境内のすべてのSitecoreインスタンスで、システムのEventQueueテーブルへのアクセスが共有されている必要があります。詳細については、「 個別のEventQueue、Properties、およびTasksテーブルのSitecoreロールの設定」を参照してください。
Switch On Rebuild機能の制御
Switch On Rebuild機能の制御
完全なインデックス再構築は、別の再構築インデックスで実行されます。再構築操作が完了すると、SitecoreはSearchサービスを切り替えて、新しく再構築されたインデックスをプライマリ検索インデックスとして使用します。この後、Sitecoreは以前の検索インデックスを削除します。
Switch On Rebuild機能は、次のインデックス構成設定で制御できます。
-
<setting name="ContentSearch.Azure.SwitchOnRebuild" value="true"/> インデックスの再構築中に検索機能のダウンタイムを回避するには、この設定を使用して、Azure SearchプロバイダーがSwitchOnRebuild機能を使用するかどうかを指定します。デフォルト値はtrueです。
-
<setting name="ContentSearch.Azure.SwitchOnRebuildCleanUpDelay" value="00:01:00"/> タイム バッファーを設定して、Sitecoreが古いインデックスを削除してから、新しく再構築されたインデックスを使用するようにすべてのロールが切り替えられるのを防ぐことができます。デフォルト値は00:01:00(1分) です。これは、SwitchOnRebuild 機能が有効になっている場合にのみ使用できます。
Switch On Rebuildプロセス
Switch On Rebuildプロセス
パワー ユーザーがSitecore Searchインデックスの完全な再構築を要求すると、次のプロセスが実行されます。
-
Sitecore Azure Searchプロバイダーは、プライマリ インデックスとして使用される完全な再構築操作の新しいsitecore-master-indexを作成して入力します。
-
Sitecoreは新しいインデックスにデータを書き込みますが、検索プロバイダーは引き続き古いインデックスを使用します。
-
完全な再構築が完了すると、Sitecore Azure Searchプロバイダーは対応するリモート イベント (index:switchonrebuild) をすべてのロールに送信します。
-
各ロールは、リモート 'index:switchonrebuild' イベントを処理し、新しく再構築されたインデックスを操作するように検索サービスを切り替えます。
-
SwitchOnRebuildCleanUpDelay 設定は、他のロールがリモートイベントを処理し、インデックスを切り替えるための遅延を制御します。
-
タイム バッファー遅延 (SwitchOnRebuildCleanUpDelay 設定で制御) が終了すると、再構築されたインデックスがプライマリ検索インデックスになると、Sitecoreは以前の検索インデックスを削除します。この遅延により、他のロールがリモート イベントを処理し、インデックスを切り替える時間を確保できます。
手記再構築がスケジュールされると、Sitecore Azure Searchプロバイダーはsitecore-master-index-xxxというセカンダリ インデックスを作成します。インデックスの再作成が完了すると、sitecore-master-index-xxxがprimary になり、数分後にsitecore-master-indexが削除されます(これはContentSearch.Azure.SwitchOnRebuildCleanUpDelay設定ファイルで確認できます)。
すべてのインデックス更新操作は、再構築プロセス中に延期されます。