チュートリアル: Solrのセットアップ

Version: 10.4
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

このチュートリアルでは、SolrをSitecoreで使用するように設定する方法について説明します。Solrで使用可能なすべての設定オプションを網羅しているわけではなく、SitecoreでSolrを使用するための設定の詳細のみを文書化しています。 SolrのWebサイト には、より高度なSolrセットアップに関する情報があります。

Solr互換性テーブルを確認して、お使いのSitecoreのバージョンと互換性があるバージョンを確認してください。

メモ

Content SearchコアをホストするSolrサーバーは、xDB Search Indexコアをホストするサーバーとは異なる場合があります。

Solrの資料の指示に従って、Solrをインストールします。SolrのWebサイトには、リソースがリストされています。そこでホストされているApache Solr wikiは特に便利です。

手記

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

SolrをSitecoreと連携するように設定する

SitecoreはSolrでマネージド スキーマを使用します。

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

  1. Solrが提供するConfiguration Exampleフォルダ ( _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が使用するインデックスにあります。

Sitecore XPのインデックスは次のとおりです。

The indexes in Sitecore XP

Solrの実行

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

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

    The Dashboard on the Solr administration page
  2. Loggingセクションでログにエラーがないか確認します。認証/承認に関連する警告が表示されることがありますが、これは予期される動作です。警告を削除する場合は、基本認証を有効にします

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

    The Core Admin settings on the Solr administration page

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" /> の値によって、クエリで数が指定されていない場合に1つの要求で取得されるドキュメントの最大数が指定されます。デフォルトは1000000です。ほとんどの場合、これを変更する必要はありません。この値を変更する必要がある場合は、パッチを適用してください。

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

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

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

    ただし、インデックスに自分で名前を付けた場合は、これを反映するように構成にパッチを適用する必要があります。\website\App_Config\Sitecore\ContentSearch\Sitecore.ContentSearch.Solr.Index.Master.configファイル内の<param desc="name">$(id)</param>の値は、カスタムインデックス名を指定します。たとえば、sc10_sitecore_master_indexというインデックスの1 <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を設定したら、SolrスキーマにSitecoreフィールドを入力します。

スキーマを設定するには:

  1. Sitecoreで、Control Panelに移動してPopulate Solr Managed Schemaをクリックします。

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

    The indexes

Schema Populateツールは、必要なSitecoreファイルをスキーマに入力します。

managed-schemaファイルにフィールドを追加することで、スキーマにフィールドを追加できますが、システム・インデックス・フィールドは変更しないでください。この操作は、Solrスキーマにツールを入力したあとでのみ行うことをお勧めします。You can use the solr admin schema page to add additional fields.

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

Solrを使用してインデックスを作成する前に、Sitecoreコンテンツのインデックスを再作成する必要があります。検索インデックスを再構築するには、次のようにします。

  1. Sitecoreで、Control Panelに移動してIndexing managerをクリックします。

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

    手記

    以前にマーケティング定義をデプロイしたことがある場合、マーケティング定義インデックスは既に再構築されているため、選択する必要はありません。

    The Indexing Manager

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

何かフィードバックはありますか?

この記事を改善するための提案がある場合は、