チュートリアル: Solr の設定
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
このチュートリアルでは、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 で使用するには、次の手順に従います。
-
Solr が提供する
_default
という設定例のフォルダーを[SOLR_DIR]/server/solr/configsets
フォルダーから[SOLR_DIR]/server/solr
フォルダーにコピーします。 -
作成したフォルダー (
[SOLR_DIR]/server/solr/[CORE_NAME]
) で、core.properties
というテキスト ファイルを作成し、次の値を指定します。RequestResponsename=[CORE_NAME] config=solrconfig.xml update.autoCreateFields=false dataDir=data
管理スキーマを設定するには、次の手順に従います。
-
作成したフォルダーの
conf
サブフォルダーで、管理スキーマ ファイルを開きます。 -
<uniqueKey>id</uniqueKey>
ノードの値を_uniqueid
に設定します (たとえば、<uniqueKey>_uniqueid</uniqueKey>
に設定します)。 -
fields
セクションで、_uniqueid
のフィールド設定を次のように追加します。RequestResponse<field name="_uniqueid" type="string" indexed="true" required="true" stored="true"/>
Sitecore のすべての Solr インデックスを同じ方法で設定する必要があります。Sitecore が使用するインデックスのリストについては、「Sitecore が使用するインデックス」を参照してください。
xDB を使用する場合のインデックスは次のとおりです。
Solr の実行
core を作成したら、Solr インスタンスを再起動します。Solr が正しく実行されていることを確認するには、次の手順に従います。
-
https://<host>:8983/solr
で管理ページを開きます。 -
[Logging] セクションのログで、エラーがないか確認します。認証/認可に関連する警告が表示されることがありますが、これは予期されたものです。警告を削除する場合は、Basic 認証を有効にします。
-
[Core Admin] セクションを開き、利用可能な core を確認します。
core.properties
ファイルで指定しているため、core は自動的に作成されています。設定ファイルでは、正しい core 名を使用することが重要です。名前では大文字と小文字が区別されます。デフォルトの名前を使用する場合は、設定を変更する必要はありません。
Solr を使用するように Sitecore を設定する
このセクションでは、Solr を使用するように Sitecore を設定する方法について説明します。次の手順を実行します。
-
Sitecore インスタンスの正しい接続文字列を Solr に対して指定するには、
\Website\App_config\ConnectionStrings.config
ファイルを開き、solr.search
接続文字列を調べます。次の例のようになっている必要があります。RequestResponse<add name="solr.search" connectionString="https://localhost:8983/solr">
-
検索プロバイダーを指定するには、
Web.config
ファイルを開き、search:define
キーを調べます。次のようになっている必要があります。RequestResponse<add key="search:define" value="Solr" />
-
\Website\App_config\Sitecore\ContentSearch\Sitecore.ContentSearch.config
ファイルで、<setting name="ContentSearch.SearchMaxResults" value="1000000" />
の value によって、クエリで指定されていない場合に 1 回の要求で取得されるドキュメントの最大数を指定します。デフォルトは 1000000 です。ほとんどの場合、これを変更する必要はありません。変更する必要がある場合は、この値を修正します。 -
\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" />
の設定では、一括で更新するドキュメント数を指定します。バッチ モードは、デフォルトでオンになっています。インデックスが非常に大きい場合は、バッチ サイズの設定をより大きな値に修正して、パフォーマンスを向上させることができます。 -
Solr core のカスタム名を指定します。
デフォルトでは、Sitecore は Solr で事前定義されたインデックス名を検索します。たとえば、Master index の事前定義名は s
itecore_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_index
、Sitecore 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 スキーマを生成するには:
-
Sitecore でコントロール パネルを開き、[Solr 管理スキーマを生成] をクリックします。
-
すべてのインデックスを選択して、[生成] をクリックします。
[スキーマ生成] ツールにより、必要な Sitecore フィールドを使用してスキーマが生成されます。
managed-schema
ファイルにフィールドを追加することで、スキーマにフィールドを追加できます。ただし、システム インデックス フィールドは変更しないでください。これは、Solr スキーマを生成した後にツールを使用してのみ実行することをお勧めします。フィールドは、Solr の管理スキーマ ページを使用して追加できます。
検索インデックスの再構築
Solr を使用したインデックス作成を開始する前に、Sitecore コンテンツのインデックスを再作成する必要があります。検索インデックスを再構築するには、次の手順に従います。
-
Sitecore で、[コントロール パネル] をクリックし、[インデックス マネージャー] をクリックします。
-
すべてのインデックスを選択して、[再構築] をクリックします。
Sitecore が使用するインデックス
このセクションでは、Sitecore が使用するインデックスの一覧を示します。
xDB を使用する場合:
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 を使用しない場合:
sitecore_core_index
sitecore_master_index
sitecore_web_index