---
title: "xDB指数を再構築Azure Search"
slug: "rebuild-the-xdb-index-in-azure-search"
abstract: "Azure SearchでxDBインデックスを再構築する方法、インデックスが有効かどうか、再構築が完了しているかを確認する方法。"
---
# xDB指数を再構築Azure Search

xDBインデックスを再構築するには、以下の場合にします:

-   インデックス名を変更したいのです。
-   インデックスするデータ量を変更したいのです。
-   現在のインデックストークンは期限切れです。
-   [Azure Searchサブスクリプションのアップグレードやダウングレード](https://docs.microsoft.com/en-us/azure/search/search-sku-tier)をしたい場合もあります。

> !注インデックスの再構築を始める前に、[Azure Search](https://docs.microsoft.com/en-us/azure/search/search-what-is-azure-search)や[xConnect Search Indexer](https://doc.sitecore.com/xp/en/developers/93/platform-administration-and-architecture/en/xconnect-search-indexer.html)の慣習に慣れておくと良いでしょう。なぜなら、Sitecoreインスタンスがどこにホストされているかによって設定オプションが変わるからです。

## Azure SearchおよびxConnect Searchインデクサーの規則

Azure Searchでは *、コア* はインデックスであり、Azure Searchプライマリとセカンダリの2つのインデックスを使用します。いつでも、1つのインデックスはアクティブでライブデータの検索やインデックス作成に使用され、もう1つはパッシブで再構築などの保守操作に使用されます。

一次指数と二次指数の名前は次のようにリンクされています。

-   xDBプライマリインデックスのデフォルト名称は xdbです。
-   xDB二次指数のデフォルト名は <PRIMARY INDEX>-secondary ( xdb-secondary)です。

デフォルトでは、xConnect Search IndexerはxDB Index collection.search接続文字列を通じてプライマリとセカンダリの両方をアドレス指定しますが、[セカンダリインデックス用に専用の接続文字列を作成する](https://doc.sitecore.com/xp/ja/developers/93/sitecore-experience-platform/rebuild-the-xdb-index-in-azure-search.html#UUID-b376651c-2a1c-5230-e181-c60e2cb04455_section-idm231956781011375 "Create a dedicated connection string for the secondary index")ことも可能です。

起動時および各再構築の開始時に、インデクサは接続文字列を使ってインデックスの存在を確認します。インデックスが欠けている場合はインデクサがそれを作成します。

インデクサーはホスト場所によってプロセスタイプ、アクセス方法、作業フォルダが変わります:

Sitecoreはオンプレミスでホストされています

クラウドでホストされたSitecore

**プロセスの種類**

[xConnect Collection Search](https://doc.sitecore.com/xp/en/developers/93/platform-administration-and-architecture/en/xconnect-collection-search-service.html)インスタンス上のWindowsサービスです。

xConnect Collection Search インスタンス上の Azure App Service WebJob。

**アクセスウェイ**

PowerShell。

[Kuduのデバッグコンソール](https://blogs.msdn.microsoft.com/cdndevs/2015/04/01/the-kudu-debug-console-azure-websites-best-kept-secret/)。

**フォルダ**

<xConnect instance>\\App\_Data\\jobs\\continuous\\IndexWorker\\

D:\\local\\Temp\\jobs\\continuous\\IndexWorker\\<SUBFOLDER>\\  
  
WebJobを再デプロイするAzureたびに、インデクサーの作業ファイルを格納するための一意名称の一時サブフォルダ(例えば bp003r3f.h2g/)が作成されます。

## プライマリとセカンダリインデックスを別の名前やサブスクリプションに再構築Azure Search

プライマリーおよびセカンダリーインデックスを別の名前やAzure Searchサブスクリプションに再構築するには:

1.  [プライマリインデックスが受動的であることを確認しましょう。](https://doc.sitecore.com/xp/ja/developers/93/sitecore-experience-platform/rebuild-the-xdb-index-in-azure-search.html#UUID-b376651c-2a1c-5230-e181-c60e2cb04455_N1597834729987 "Check if an index is active")
    
2.  <xConnect instance>\\App\_Config\\フォルダに行き、ConnectionStrings.configファイルを開いてください。
    
3.  collection.search接続文字列で、インデックス名やAPIキーを編集してください:
    
    <connectionStrings configBuilders="SitecoreConnectionStringsBuilder">
     <add name="<CONNECTION STRING NAME>" connectionString="serviceUrl=https://<SUBDOMAIN>.search.windows.net/;indexName=<INDEX NAME>;apiKey=<API KEY>" />
    
    -   <CONNECTION STRING NAME> は接続文字列の名前です。これを編集しないでください。
    -   <SUBDOMAIN>search.windows.netのあなたのサブドメインです。これを編集しないでください。
    -   <INDEX NAME> デフォルトのプライマリインデックス名でも、他の名前でも構いません。名前は自由に選べます。
    -   <API KEY> はAzure Searchのサブスクリプションキーです。Azure Searchサブスクリプションを変更する場合は、新しいAzure SearchサブスクリプションのAPIキーを使ってください。
4.  [一次指数を再構築する。](https://doc.sitecore.com/xp/ja/developers/93/sitecore-experience-platform/rebuild-the-xdb-index-in-azure-search.html#UUID-b376651c-2a1c-5230-e181-c60e2cb04455_N1597837812362 "Rebuild an index")
    
5.  この手順をすべてのxConnect Collection Searchインスタンスで繰り返してください。
    
6.  Azure Searchサブスクリプションを変更した場合、上記の手順を繰り返した後:
    
    -   インスタンスが古いAzure Searchサブスクリプションを参照していないか確認してください。
    -   古いAzure Searchサブスクリプションを古いインデックスで削除してください。

## 単一のインデックスを別の名前やサブスクリプションAzure Search再構築してください

単一のインデックスを別の名前やAzure Searchサブスクリプションに再構築するには:

1.  [もし存在しない場合は、専用のセカンダリインデックス接続文字列を作成しましょう。](https://doc.sitecore.com/xp/ja/developers/93/sitecore-experience-platform/rebuild-the-xdb-index-in-azure-search.html#UUID-b376651c-2a1c-5230-e181-c60e2cb04455_section-idm231956781011375 "Create a dedicated connection string for the secondary index")
    
2.  [再構築したいインデックスがパッシブであるか確認してください。](https://doc.sitecore.com/xp/ja/developers/93/sitecore-experience-platform/rebuild-the-xdb-index-in-azure-search.html#UUID-b376651c-2a1c-5230-e181-c60e2cb04455_N1597834729987 "Check if an index is active")
    
3.  再構築したいインデックスの接続文字列で、インデックス名やAPIキーを編集してください:
    
    <connectionStrings configBuilders="SitecoreConnectionStringsBuilder">
     <add name="<CONNECTION STRING NAME>" connectionString="serviceUrl=https://<SUBDOMAIN>.search.windows.net/;indexName=<INDEX NAME>;apiKey=<API KEY>"/>
    </connectionStrings>
    
    -   <CONNECTION STRING NAME> は接続文字列の名前です。これを編集しないでください。
    -   <SUBDOMAIN>search.windows.netのあなたのサブドメインです。これを編集しないでください。
    -   <INDEX NAME> デフォルトのインデックス名でも、他の名前でも構いません。名前を選べます。
    -   <API KEY> はAzure Searchのサブスクリプションキーです。Azure Searchサブスクリプションを変更する場合は、新しいAzure SearchサブスクリプションのAPIキーを使ってください。
4.  インデックスを再構築しろ。
    
5.  Azure Searchのサブスクリプションを変更し、両方のインデックスを同じAzure Searchサブスクリプションに存在させたい場合は、以下の条件を満たす必要があります:
    
    -   再建が完了するまで待ちましょう。
    -   再構築されたインデックスが有効になるのを待ちましょう。
    -   パッシブインデックス接続文字列のAPIキーを変更してください。
    
    すると、新しいAzure Searchサブスクリプションでパッシブインデックスが再構築されます。
    
6.  この手順をすべてのxConnect Collection Searchインスタンスで繰り返してください。
    
7.  Azure Searchサブスクリプションを変更し、以前のAzure Searchサブスクリプションにインデックスが一切存在しない場合は、同じ手順を繰り返した後に:
    
    -   インスタンスが古いAzure Searchサブスクリプションを参照していないか確認してください。
    -   古いAzure Searchサブスクリプションを古いインデックスで削除してください。

## インデックスの再構築

インデックスを再構築するには:

1.  xConnect Search Collectionインスタンスにアクセスしてください。
    
2.  フォルダに行ってください 。
    
    ![azr-rebuild-11.png](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/93/sitecore-experience-platform/images/azr-rebuild-11.png)
    
3.  再構築を始めましょう: .\\Sitecore.XConnectSearchIndexer.exe -rr
    
    > !重要Sitecoreインスタンスをクラウド上でホストしている場合は、<WORKING>\\App\_Data\\Logs\\ フォルダから再構築を開始しないでください。これによりAzureインデクサーWebJobを再デプロイし、インデックス再構築プロセスが中断される可能性があります。
    

インデクサーは再構築開始を示すためにDoneを返します。再構築が完了すると、新たに再構築されたインデックスは自動的にアクティブになり、もう一方のインデックスは受動的になります。

> !重要個人識別情報を削除するためにインデックスを再構築する場合、再構築が完了し、アクティブインデックスとパッシブインデックスを入れ替えた後にパッシブインデックスを削除しなければなりません。

> !ヒントスペースを節約するために、[パッシブインデックスから非推奨のインデックスデータを削除することができます](https://doc.sitecore.com/xp/ja/developers/93/sitecore-experience-platform/clean-up-the-rebuild-index.html "Clean up the rebuild index")。

## インデックスが有効かどうか確認してください

インデックスが有効かどうかを確認するには:

1.  Azure Searchでインデックスを開けてください。
2.  以下の検索を行います: $filter=id eq 'indexconfiguration'&$select=id,isactivecore
3.  IsActiveCoreフィールドがtrueなら、インデックスはアクティブです。

## 再建が完了しているか確認してください

再建が完了したかどうかは以下の方法で確認できます:

-   <WORKING>\\App\_Data\\Logs\\フォルダに行ってログファイルを検索してください。Rebuilding process. Stage: Finishedテキストが見つかれば、再構築は完了したことになります。
    
    ![Illustration showing the rebuilding process status in the log file.](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/93/sitecore-experience-platform/images/az-rebuild-41.png)
    
-   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 = 終了
-   [インデックスの再建進程を監視してください。](https://doc.sitecore.com/xp/ja/developers/93/sitecore-experience-platform/monitor-the-index-rebuild-process.html "Monitor the index rebuild process")
    

## セカンダリインデックス用の専用接続文字列を作成します

二次インデックス用の専用接続文字列を作成するには:

1.  <xConnect instance>\\App\_Data\\config\\global\\フォルダに行ってください。
    
2.  例えば、パッチファイル( xDbSecondaryIndexConnectionString.configファイル)を作成する。
    
3.  パッチファイル内で、例えばcollection.search.secondaryと呼ぶ二次インデックスの接続文字列を作成するために、以下の入力を入力してください。好きな名前で呼んで構いません:
    
    <?xml version="1.0" encoding="utf-8" ?>
    <Settings>
     <Sitecore>
     <XConnect>
     <CollectionSearch>
     <Services>
     <IAzureSecondaryWebClientFactory>
     <Options>
     <ConnectionStringName>
     collection.search.secondary
     </ConnectionStringName>
     </Options>
     </IAzureSecondaryWebClientFactory>
     </Services>
     </CollectionSearch>
     </XConnect>
     </Sitecore>
    </Settings>
    
4.  <xConnect instance>\\App\_Config\\フォルダに行き、ConnectionStrings.configファイルを開いてください。
    
5.  設定ファイル内に、接続文字列名、サブドメイン、インデックス名、APIキーを含む二次接続文字列を追加します。
    
    <connectionStrings configBuilders="SitecoreConnectionStringsBuilder">
     ...
     <add name="<CONNECTION STRING NAME>" connectionString="serviceUrl=https://<SUBDOMAIN>.search.windows.net/;indexName=<INDEX NAME>;apiKey=<API KEY>"/>
    </connectionStrings>
    
    -   <CONNECTION STRING NAME> パッチファイルで選んだ名前です。
    -   <SUBDOMAIN>search.windows.netのサブドメインです。
    -   <INDEX NAME> デフォルトのインデックス名でも、他の名前でも構いません。名前を選べます。
    -   <API KEY> はAzure Searchのサブスクリプションキーです。Azure Searchサブスクリプションを変更する場合は、新しいAzure SearchサブスクリプションのAPIキーを使ってください。
6.  パッチファイルを保存してください。
    

## 9.0初期リリースおよび9.0アップデート1インデックスの内容を更新してください

9.0初期リリースから9.0アップデート1までのAzure Search Sitecoreインデックス再構築プロセスはありません。しかし、以下の手順を使ってインデックスの内容を更新できます:

1.  インデクサーのWebJobを止めてください。
2.  インデックスを削除してください。
3.  インデクサーを起動しろ。

> !重要この手順はインデックスを再作成し、過去5日以内に変更されたデータを追加します(SQLのデフォルトの保持期間)。保持期間の値より古いデータはインデックスに追加してはなりません。このプロセスは、xDBコレクションプロバイダーの変更追跡保持 [期間](https://doc.sitecore.com/xp/ja/developers/93/sitecore-experience-platform/tracking-changes-to-the-xdb-index.html "Tracking changes to the xDB index") が十分に長く、インデクサーが既存データを処理するまですべての入信変更の記録を保持できる状態であることに依存しています。非常に高い変更追跡保持期間を設定するとパフォーマンスに悪影響を及ぼします。