xDB指数を再構築Azure Search
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
xDBインデックスを再構築するには、以下の場合にします:
- インデックス名を変更したいのです。
- インデックスするデータ量を変更したいのです。
- 現在のインデックストークンは期限切れです。
- Azure Searchサブスクリプションのアップグレードやダウングレードをしたい場合もあります。
!注インデックスの再構築を始める前に、Azure SearchやxConnect Search Indexerの慣習に慣れておくと良いでしょう。なぜなら、Sitecoreインスタンスがどこにホストされているかによって設定オプションが変わるからです。
Azure SearchおよびxConnect Searchインデクサーの規則
Azure Searchでは 、コア はインデックスであり、Azure Searchプライマリとセカンダリの2つのインデックスを使用します。いつでも、1つのインデックスはアクティブでライブデータの検索やインデックス作成に使用され、もう1つはパッシブで再構築などの保守操作に使用されます。
一次指数と二次指数の名前は次のようにリンクされています。
- xDBプライマリインデックスのデフォルト名称は xdbです。
- xDB二次指数のデフォルト名は
-secondary ( xdb-secondary)です。
デフォルトでは、xConnect Search IndexerはxDB Index collection.search接続文字列を通じてプライマリとセカンダリの両方をアドレス指定しますが、セカンダリインデックス用に専用の接続文字列を作成することも可能です。
起動時および各再構築の開始時に、インデクサは接続文字列を使ってインデックスの存在を確認します。インデックスが欠けている場合はインデクサがそれを作成します。
インデクサーはホスト場所によってプロセスタイプ、アクセス方法、作業フォルダが変わります:
Sitecoreはオンプレミスでホストされています
クラウドでホストされたSitecore
プロセスの種類
xConnect Collection Searchインスタンス上のWindowsサービスです。
xConnect Collection Search インスタンス上の Azure App Service WebJob。
アクセスウェイ
PowerShell。
フォルダ
D:\local\Temp\jobs\continuous\IndexWorker\
WebJobを再デプロイするAzureたびに、インデクサーの作業ファイルを格納するための一意名称の一時サブフォルダ(例えば bp003r3f.h2g/)が作成されます。
プライマリとセカンダリインデックスを別の名前やサブスクリプションに再構築Azure Search
プライマリーおよびセカンダリーインデックスを別の名前やAzure Searchサブスクリプションに再構築するには:
-
\App_Config\フォルダに行き、ConnectionStrings.configファイルを開いてください。 -
collection.search接続文字列で、インデックス名やAPIキーを編集してください:
は接続文字列の名前です。これを編集しないでください。 search.windows.netのあなたのサブドメインです。これを編集しないでください。 デフォルトのプライマリインデックス名でも、他の名前でも構いません。名前は自由に選べます。 はAzure Searchのサブスクリプションキーです。Azure Searchサブスクリプションを変更する場合は、新しいAzure SearchサブスクリプションのAPIキーを使ってください。
-
この手順をすべてのxConnect Collection Searchインスタンスで繰り返してください。
-
Azure Searchサブスクリプションを変更した場合、上記の手順を繰り返した後:
- インスタンスが古いAzure Searchサブスクリプションを参照していないか確認してください。
- 古いAzure Searchサブスクリプションを古いインデックスで削除してください。
単一のインデックスを別の名前やサブスクリプションAzure Search再構築してください
単一のインデックスを別の名前やAzure Searchサブスクリプションに再構築するには:
-
再構築したいインデックスの接続文字列で、インデックス名やAPIキーを編集してください:
は接続文字列の名前です。これを編集しないでください。 search.windows.netのあなたのサブドメインです。これを編集しないでください。 デフォルトのインデックス名でも、他の名前でも構いません。名前を選べます。 はAzure Searchのサブスクリプションキーです。Azure Searchサブスクリプションを変更する場合は、新しいAzure SearchサブスクリプションのAPIキーを使ってください。
-
インデックスを再構築しろ。
-
Azure Searchのサブスクリプションを変更し、両方のインデックスを同じAzure Searchサブスクリプションに存在させたい場合は、以下の条件を満たす必要があります:
- 再建が完了するまで待ちましょう。
- 再構築されたインデックスが有効になるのを待ちましょう。
- パッシブインデックス接続文字列のAPIキーを変更してください。
すると、新しいAzure Searchサブスクリプションでパッシブインデックスが再構築されます。
-
この手順をすべてのxConnect Collection Searchインスタンスで繰り返してください。
-
Azure Searchサブスクリプションを変更し、以前のAzure Searchサブスクリプションにインデックスが一切存在しない場合は、同じ手順を繰り返した後に:
- インスタンスが古いAzure Searchサブスクリプションを参照していないか確認してください。
- 古いAzure Searchサブスクリプションを古いインデックスで削除してください。
インデックスの再構築
インデックスを再構築するには:
-
xConnect Search Collectionインスタンスにアクセスしてください。
-
フォルダに行ってください 。

-
再構築を始めましょう: .\Sitecore.XConnectSearchIndexer.exe -rr
!重要Sitecoreインスタンスをクラウド上でホストしている場合は、
\App_Data\Logs\ フォルダから再構築を開始しないでください。これによりAzureインデクサーWebJobを再デプロイし、インデックス再構築プロセスが中断される可能性があります。
!重要個人識別情報を削除するためにインデックスを再構築する場合、再構築が完了し、アクティブインデックスとパッシブインデックスを入れ替えた後にパッシブインデックスを削除しなければなりません。
!ヒントスペースを節約するために、パッシブインデックスから非推奨のインデックスデータを削除することができます。
インデックスが有効かどうか確認してください
インデックスが有効かどうかを確認するには:
- Azure Searchでインデックスを開けてください。
- 以下の検索を行います: $filter=id eq 'indexconfiguration'&$select=id,isactivecore
- IsActiveCoreフィールドがtrueなら、インデックスはアクティブです。
再建が完了しているか確認してください
再建が完了したかどうかは以下の方法で確認できます:
-
\App_Data\Logs\フォルダに行ってログファイルを検索してください。Rebuilding process. Stage: Finishedテキストが見つかれば、再構築は完了したことになります。 
-
Azure Searchでインデックスを開き、$filter=id eq 'xdb-rebuild-status'&$select=id,rebuildstateコマンドでxdb-rebuild-statusドキュメントの状態を確認してください。
Index Rebuild State status文書は以下の値を持つことができます:
- 0 = デフォルト
- 1 = 再建依頼
- 2 = スタート
- 3 = RebuildExistingData
- 4 = 再建中 来る変化
- 5 = フィニッシング
- 6 = 終了
セカンダリインデックス用の専用接続文字列を作成します
二次インデックス用の専用接続文字列を作成するには:
-
\App_Data\config\global\フォルダに行ってください。 -
例えば、パッチファイル( xDbSecondaryIndexConnectionString.configファイル)を作成する。
-
パッチファイル内で、例えばcollection.search.secondaryと呼ぶ二次インデックスの接続文字列を作成するために、以下の入力を入力してください。好きな名前で呼んで構いません:
collection.search.secondary -
\App_Config\フォルダに行き、ConnectionStrings.configファイルを開いてください。 -
設定ファイル内に、接続文字列名、サブドメイン、インデックス名、APIキーを含む二次接続文字列を追加します。
... パッチファイルで選んだ名前です。 search.windows.netのサブドメインです。 デフォルトのインデックス名でも、他の名前でも構いません。名前を選べます。 はAzure Searchのサブスクリプションキーです。Azure Searchサブスクリプションを変更する場合は、新しいAzure SearchサブスクリプションのAPIキーを使ってください。
-
パッチファイルを保存してください。
9.0初期リリースおよび9.0アップデート1インデックスの内容を更新してください
9.0初期リリースから9.0アップデート1までのAzure Search Sitecoreインデックス再構築プロセスはありません。しかし、以下の手順を使ってインデックスの内容を更新できます:
- インデクサーのWebJobを止めてください。
- インデックスを削除してください。
- インデクサーを起動しろ。
!重要この手順はインデックスを再作成し、過去5日以内に変更されたデータを追加します(SQLのデフォルトの保持期間)。保持期間の値より古いデータはインデックスに追加してはなりません。このプロセスは、xDBコレクションプロバイダーの変更追跡保持 期間 が十分に長く、インデクサーが既存データを処理するまですべての入信変更の記録を保持できる状態であることに依存しています。非常に高い変更追跡保持期間を設定するとパフォーマンスに悪影響を及ぼします。