---
title: "SolrでxDBインデックスを再構築する"
slug: "rebuild-the-xdb-index-in-solr"
abstract: "再構築コアの作成方法、再構築プロセスの開始、再構築の確認、そして再構築コアのクリーンアップ。"
---
# SolrでxDBインデックスを再構築する

このトピックでは、Solr検索プロバイダーを使用している場合にxDB Searchインデックスを再構築する方法について説明します。再構築前に、環境が以下の要件を満たしていることを確認してください。

-   xConnect Solrコアは2つあり、ライブコア(通常 xdb)とリビルドコアで、リビルドコアは \_rebuild サフィックス( xdb\_rebuildのように)が付いています。
-   両方のコアは basic\_configs ファイルをベースにしています。
-   xConnectスキーマの変更は両コアに適用されています。

> !重要[レポートデータベースの再構築](https://doc.sitecore.com/xp/ja/developers/91/sitecore-experience-platform/rebuild-the-reporting-database.html "Rebuild the reporting database")はインデックスの再構築をトリガーしません。インデックスは別途再構築する必要があります。

## rebuild requestコマンドを呼び出します

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

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

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

**プロセスの種類**

[xConnect Collection Search](https://doc.sitecore.com/xp/en/developers/104/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/)が作成されます。

rebuild requestコマンドを呼び出すには:

1.  xConnect Search Indexerが動作しているサーバーにアクセスし、コマンドラインを開きます。
2.  xConnect Collection Search IndexWorkerフォルダにアクセスしてください。
3.  実行Sitecore.XConnectSearchIndexer.exe -rr(またはSitecore.XConnectSearchIndexer.exe -requestrebuild)を実行します。このコマンドはライブコアに小さなドキュメントを登録し、再構築を開始することを示します。xConnect Searchインデクサーがドキュメントを感知し、再構築プロセスを開始します。

## 再構築コアを作成する

再建コアがない場合は、以下の手順を踏み入れてください。再構築コアがある場合は、このセクションを飛ばしてください。

> !注Managed Cloud解については、このセクションは飛ばしてください。 xdb\_rebuildは箱から直接プロビジョニングされているからです。

再構築コアを作成するには:

1.  Solrコアフォルダに移動します: <Solr root>\\server\\solr
    
2.  \_rebuildの接尾辞付きでコアのコピーを作成しましょう。コアの名前がxdbなら、コピー名をxdb\_rebuildしてください。
    
3.  xdb\_rebuildフォルダを開き、core.propertiesファイルとdataフォルダを削除してください。
    
4.  ブラウザを開き、Solrの管理インターフェース(通常はhttps://localhost:8983/solr/)に行ってください。
    
5.  左側メニューの **「Core Admin** 」をクリックしてください:
    
    ![Core Admin in the Solr administrative interface](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/91/sitecore-experience-platform/images/solr-core-add1.png)
    
6.  「 **Add Core** 」をクリックし、再構築したコアの名前とパス(InstanceDir)を入力します(他のプロパティは変更せずに):
    
    ![Add Core in the Solr administrative interface](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/91/sitecore-experience-platform/images/xbd_rebuild.png)
    

## エイリアスを作成する

コレクション用のエイリアスを作成するには:

1.  Solr管理UIで、作成したノードの一つを使ってコレクションページに移動します。
2.  「 **別名を作成**」をクリックします。
3.  *xdb\_rebuild*という別名を作成し、**コレクション**リストで*xdb\_rebuild\_internal*をクリックします。
4.  *xdb*という2つ目のエイリアスを作成し、**コレクション**リストで*xdb\_internal*を選択します。
5.  すべてのエイリアス一覧を見るには、URL https://<solrurl>/solr/admin/collections?action=LISTALIASESを使用します。
6.  Solr Schema APIを使って、 <xconnect-root>\\App\_Data\\solrcommands\\schema.json ファイルのスキーマ修正を *両方の* コレクションに適用します。

> !注接続列には*xdb\_internal*や*xdb\_rebuild\_internal***ではなく***xdb*と*xdb\_rebuild*を使いましょう。*xdb*と*xdb\_rebuild*はプライマリとセカンダリインデックスのデフォルト名です。インデックス名を変更する場合は、すべての接続文字列を更新しなければなりません。

> !注コレクションと別名を同じ名前で使わないでください。

これでSolrCloudファームが作成されました。xConnectで使う前に、xConnectの役割をSolrCloudを使うように設定してください。

## コアの再構築

ユーザーインターフェースやxConnect Client APIからインデックス再構築をトリガーすることはできません。代わりに、以下のいずれかの方法で再構築プロセスをトリガーしてください:

### rebuild requestコマンドを呼び出します

rebuild requestコマンドを呼び出すには:

1.  xConnect Search Indexerが動作しているサーバーにアクセスし、コマンドラインを開きます。
2.  xConnect CollectionのIndexWorkerフォルダSearch <xConnect Collection Search service root>\\App\_Data\\jobs\\continuous\\IndexWorkerへ行きます。
3.  実行 XConnectSearchIndexer -rr (または XConnectSearchIndexer -requestrebuild)を実行します。このコマンドはライブコアに小さなドキュメントを登録し、再構築を開始することを示します。xConnect Searchインデクサーがドキュメントを感知し、再構築プロセスを開始します。

### 手動で再構築ドキュメントを投稿してください

手動で再構築ドキュメントを投稿するには:

-   以下の文書をPowerShellから直接Solrライブコアに投稿してください: Invoke-WebRequest https://localhost:8983:/solr -Method Post -Body '{"id":"xdb-rebuild-status","lastupdated\_dt":"2017-05-24T10:15:47.603436Z","rebuildstate\_l":1,"progresstotal\_d":0.0,"progresscurrent\_d":0.0}'

## 再建を確認

再構築が完了すると、コアが [入れ替](https://wiki.apache.org/solr/CoreAdmin#SWAP)わり、再構築されたコアがライブコアになります。コアを入れ替えると名前は入れ替わりますが、物理フォルダの位置は入れ替わりません:

再建前の名前

再建後の名称

中心地

XDB(ライブ)

xdb\_rebuild

C:\\Solr-8.2.0\_https\\server\\solr\\xdb

xdb\_rebuild

XDB(ライブ)

C:\\Solr-8.2.0\_https\\server\\solr\\xdb\_rebuild

この時点で、リビルドコアはすでに使用されていません。しかし、交換前のライブコアにあったすべてのデータは依然として保持されています。

### 手動でコアを戻す方法

もし戻す *必要がある(二* 度目の再構築を望むなら)まずは、コアが最近交換されたことを確認する必要があります *。戻す* のは以下の場合にのみ有効です:

-   xDBコレクションのプロバイダー [変更追跡データは](https://doc.sitecore.com/xp/ja/developers/91/sitecore-experience-platform/tracking-changes-to-the-xdb-index.html "Tracking changes to the xDB index") 、コアが交換された以降のすべての変更を保持しています。
-   xConnect Searchは一定期間オフラインになることがあります。これは、スワップされたコアが上記の変更を更新するために必要です。スワップからの時間が短いほど、かかる時間は短くなります。

これらの要件を満たしていると仮定して、以下の指示に従って進めてください。満たさなければ、コアの交換に成功することはできません。

1.  インデクサーを止めろ。
    
    > !警告コアを元に戻す前にインデクサーを停止しないと、インデクサーがデータをスキップすることがあります。
    
2.  Solrのスワップコマンドを使ってコアを交換します。
    
3.  インデクサーをもう一度起動します。
    

## 再建コアをきれいにする

容量を節約するために、古いコアから非推奨のインデックスデータを削除することができます。

> !注もし再構築の目的がインデックスからすべてのPII機密データを削除することなら、必ず古いコアを削除してください。古いコアにはこのデータがまだ残っています。