チュートリアル: Solr の設定

Current version: 10.1

このチュートリアルでは、Sitecore で使用するために Solr を設定する方法について説明します。Solr で使用可能なすべての設定オプションを網羅しているわけではありません。Sitecore で Solr を使用することに特化して説明しています。高度な Solr の設定については、Solr の Web サイトを参照してください。Sitecore 10 は Solr 8.4 をサポートしています。

注記

Content Search の core をホストする Solr サーバーは、xDB 検索インデックスの core をホストするサーバーとは別のサーバーにすることができます。

Solr は、Solr のドキュメントの手順に従ってインストールしてください。リソースのリストは、Solr の Web サイトに示されています。このサイトで提供されている Apache Solr wiki は特に有用です。

注記

インデックスごとに個別の core を使用する必要があります。Apache Solr wiki では、複数 core の概念について紹介しています

Sitecore を使用するように Solr を設定する

Sitecore は、Solr で管理スキーマを使用します。

Solr の設定例を変更して Sitecore で使用するには、次の手順に従います。

  1. Solr が提供する _default という設定例のフォルダーを [SOLR_DIR]/server/solr/configsets フォルダーから [SOLR_DIR]/server/solr フォルダーにコピーします。

  2. 作成したフォルダー ([SOLR_DIR]/server/solr/[CORE_NAME]) で、core.properties というテキスト ファイルを作成し、次の値を指定します。

    RequestResponse
    name=[CORE_NAME]
    config=solrconfig.xml
    update.autoCreateFields=false
    dataDir=data

管理スキーマを設定するには、次の手順に従います。

  1. 作成したフォルダーconf サブフォルダーで、管理スキーマ ファイルを開きます。

  2. <uniqueKey>id</uniqueKey> ノードの値を _uniqueid に設定します (たとえば、<uniqueKey>_uniqueid</uniqueKey> に設定します)。

  3. fields セクションで、_uniqueid のフィールド設定を次のように追加します。

    RequestResponse
    <field name="_uniqueid" type="string" indexed="true" required="true" stored="true"/>

Sitecore のすべての Solr インデックスを同じ方法で設定する必要があります。Sitecore が使用するインデックスのリストについては、「Sitecore が使用するインデックス」を参照してください。

xDB を使用する場合のインデックスは次のとおりです。

xDB を使用する場合のインデックス

Solr の実行

core を作成したら、Solr インスタンスを再起動します。Solr が正しく実行されていることを確認するには、次の手順に従います。

  1. https://<host>:8983/solr で管理ページを開きます。

    Solr 管理ページのダッシュボード
  2. [Logging] セクションのログで、エラーがないか確認します。認証/認可に関連する警告が表示されることがありますが、これは予期されたものです。警告を削除する場合は、Basic 認証を有効にします

  3. [Core Admin] セクションを開き、利用可能な core を確認します。core.properties ファイルで指定しているため、core は自動的に作成されています。設定ファイルでは、正しい core 名を使用することが重要です。名前では大文字と小文字が区別されます。デフォルトの名前を使用する場合は、設定を変更する必要はありません。

    Solr 管理ページの [Core Admin] 設定

Solr を使用するように Sitecore を設定する

このセクションでは、Solr を使用するように Sitecore を設定する方法について説明します。次の手順を実行します。

  1. Sitecore インスタンスの正しい接続文字列を Solr に対して指定するには、\Website\App_config\ConnectionStrings.config ファイルを開き、solr.search 接続文字列を調べます。次の例のようになっている必要があります。

    RequestResponse
    <add name="solr.search" connectionString="https://localhost:8983/solr">
  2. 検索プロバイダーを指定するには、Web.config ファイルを開き、search:define キーを調べます。次のようになっている必要があります。

    RequestResponse
    <add key="search:define" value="Solr" />
  3. \Website\App_config\Sitecore\ContentSearch\Sitecore.ContentSearch.config ファイルで、<setting name="ContentSearch.SearchMaxResults" value="1000000" /> の value によって、クエリで指定されていない場合に 1 回の要求で取得されるドキュメントの最大数を指定します。デフォルトは 1000000 です。ほとんどの場合、これを変更する必要はありません。変更する必要がある場合は、この値を修正します。

  4. \Website\App_Config\Sitecore\ContentSearch\Sitecore.ContentSearch.Solr.DefaultIndexConfiguration.config ファイルで、<setting name="ContentSearch.Update.BatchModeEnabled" value="true" /> の value によって、バッチ モードでコミットするかどうかを指定します。これにより、CM サーバーと Solr サーバー間のネットワーク トラフィックが減少します。<setting name="ContentSearch.Update.BatchSize" value="500" /> の設定では、一括で更新するドキュメント数を指定します。バッチ モードは、デフォルトでオンになっています。インデックスが非常に大きい場合は、バッチ サイズの設定をより大きな値に修正して、パフォーマンスを向上させることができます。

  5. Solr core のカスタム名を指定します。

    デフォルトでは、Sitecore は Solr で事前定義されたインデックス名を検索します。たとえば、Master index の事前定義名は sitecore_master_index です。変更していない場合は、何もする必要はありません。

    ただし、インデックスに独自の名前を付けた場合は、これを反映して設定を修正する必要があります。カスタム インデックス名は、\website\App_Config\Sitecore\ContentSearch\Sitecore.ContentSearch.Solr.Index.Master.config ファイルの <param desc="name">$(id)</param> の値で指定します。たとえば、sc10_sitecore_master_index というインデックスの場合は、<param desc="name">sc10_sitecore_master_index</param> とします。カスタム インデックスを指定する必要があるファイルの完全なリストは、次のとおりです。

    インデックス設定ファイル

    カスタム インデックス名

    Sitecore.ContentSearch.Solr.Index.Core.config

    <Sitecore instance name>_core_index

    Sitecore.ContentSearch.Solr.Index.Master.config

    <Sitecore instance name>_master_index

    Sitecore.ContentSearch.Solr.Index.Web.config

    <Sitecore instance name>_web_index

    Sitecore.ContentTesting.Solr.IndexConfiguration.config

    <Sitecore instance name>_testing_indexSitecore instance name>_suggested_text_index

    Sitecore.FXM.Solr.DomainsSearch.Index.Master.config

    <Sitecore instance name>_fxm_master_index

    Sitecore.FXM.Solr.DomainsSearch.Index.Web.config

    <Sitecore instance name>_fxm_web_index

    Sitecore.Marketing.Definitions.MarketingAssets.Repositories .Solr.Index.Master.config

    <Sitecore instance name>__marketing_asset_index_master

    Sitecore.Marketing.Definitions.MarketingAssets.Repositories .Solr.Index.Web.config

    <Sitecore instance name>_marketing_asset_index_web

    Sitecore.Marketing.Solr.Index.Master.config

    <Sitecore instance name>_marketingdefinitions_master

    Sitecore.Marketing.Solr.Index.Web.config

    <Sitecore instance name>_marketingdefinitions_web

    Sitecore.Personalization.Solr.IndexConfiguration.config

    <Sitecore instancce name>_personalization_index

Solr スキーマの生成

Solr を実行していて Sitecore を設定した場合は、Sitecore のフィールドで Solr スキーマを生成します。

Solr スキーマを生成するには:

  1. Sitecore でコントロール パネルを開き、[Solr 管理スキーマを生成] をクリックします。

  2. すべてのインデックスを選択して、[生成] をクリックします。

    インデックス

[スキーマ生成] ツールにより、必要な Sitecore フィールドを使用してスキーマが生成されます。

managed-schema ファイルにフィールドを追加することで、スキーマにフィールドを追加できます。ただし、システム インデックス フィールドは変更しないでください。これは、Solr スキーマを生成した後にツールを使用してのみ実行することをお勧めします。フィールドは、Solr の管理スキーマ ページを使用して追加できます。

検索インデックスの再構築

Solr を使用したインデックス作成を開始する前に、Sitecore コンテンツのインデックスを再作成する必要があります。検索インデックスを再構築するには、次の手順に従います。

  1. Sitecore で、[コントロール パネル] をクリックし、[インデックス マネージャー] をクリックします。      

  2. すべてのインデックスを選択して、[再構築] をクリックします。

    インデックス マネージャー

Sitecore が使用するインデックス

このセクションでは、Sitecore が使用するインデックスの一覧を示します。

xDB を使用する場合:

RequestResponse
sitecore_core_index
sitecore_master_index
sitecore_web_index
sitecore_marketingdefinitions_master
sitecore_marketingdefinitions_web
sitecore_marketing_asset_index_master
sitecore_marketing_asset_index_web
sitecore_testing_index
sitecore_suggested_test_index
sitecore_personalization_index
sitecore_fxm_master_index
sitecore_fxm_web_index

xDB を使用しない場合:

RequestResponse
sitecore_core_index
sitecore_master_index
sitecore_web_index

Do you have some feedback for us?

If you have suggestions for improving this article,