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

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

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

このチュートリアルでは、Sitecoreで使用するためにSolrを設定する方法について説明します。Solrで使用可能なすべての設定オプションを網羅しているわけではなく、SitecoreでSolrを使用するための設定の詳細のみを文書化しています。

このチュートリアルでは、次の方法について説明します。

Solrのインストール

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

メモ

インデックスごとに個別のコアを使用する必要があります。Solr Wikiのこのトピックでは、マルチプル・コアの概念を紹介しています。Solrを構成する場合は、実動サーバー用に64ビット・バージョンのJava仮想マシン (JVM) を使用します。Solrは、デフォルトで512 MBのメモリーを割り当てます。Solrがより多くのメモリーにアクセスできるようにする場合は、Solrの起動時にこれらの制限を調整できます。詳細については、Solrの公式ドキュメントを参照してください。

SolrのXMLスキーマを生成する

Solrでは、ドキュメントを操作するときに定義されたXMLスキーマが必要です。

既存のスキーマは、Solr Schema.xml ファイルの生成ツールを使用して変更できます。このツールは、基本スキーマを自動的に生成し、Sitecoreが必要とするすべてのフィールドが存在することを確認します。このスキーマに独自のフィールドを追加できます。ただし、システム・インデックス・フィールドを変更しない限り、このスキーマは変更できません。

手記

Sitecoreインスタンスのアプリケーション プールのIdentityアカウントは、ソース ファイルとターゲット ファイルの両方の場所にアクセスできる必要があります。

新しいSolr schema.xmlファイルを生成するには、次のようにします。

  1. コントロールパネルで、「Solr Schema.xmlファイルの生成」をクリックします。

  2. (ソースファイル)フィールドに、使用するSolrスキーマへのパスを入力します。

  3. ターゲット・ファイル」フィールドに、新しいスキーマ・ファイルの宛先を入力します。例: Webサイトのルート・フォルダー:C:\inetpub\wwwroot\<sitename>\Website\schema.xml:

  4. Generate」をクリックします。Sitecoreはschema.xmlファイルを更新し、必要なすべてのフィールドを追加します。

  5. ファイルを関連するコアのconfフォルダにコピーします。

手記

スキーマに他のフィールド定義、コピー フィールド、または動的フィールドが設定されている場合、それらはスキーマ ジェネレーターによって上書きされます。これらのフィールドを保持するには、元のスキーマをコピーし、後で新しく生成されたスキーマとマージします。

手記

Sitecore 8.2、Update 6以降のバージョンのSitecore 8.2は、Solrの新しいバージョンをサポートしています。これらのバージョンでは、手順が若干異なります。

手順3のスクリーンショットは次のようになります。

次の手順を追加します。

  1. solrconfig.xmlファイルを開き、configノードの下に1schemaFactoryノード (<schemaFactory class="ClassicIndexSchemaFactory" />) を追加します。

  2. confフォルダからmanaged-schemaファイルを削除します。

Solrが正しく動作していることを確認する

新しいschema.xmlファイルを生成し、solrconfig.xmlファイルを更新した後、Solrが正しく動作することを確認する必要があります。

Solrが正しく実行されていることを確認するには、次のようにします。

  1. Solrが実行されていないことを確認します。新しい設定をロードするには、完全な再起動が必要です。

  2. Solrを起動します。

  3. 出力ログファイルを確認します。エラーがない場合は、Solr管理ページを開きます。

    管理ページを開くには、ブラウザに次のURLを入力します:http://localhost:8983/solr/admin:

  4. Core Adminをクリックし、コアをクリックします。この例では、itembucketsという1つのコアがあります。

Solr管理ページが表示され、ログファイルにエラーがない場合、Solrは正しく実行されています。

IOCコンテナの設定

手記

Sitecore 8.2 Update 1以降では、IOCコンテナをインストールする必要はありません。Sitecoreには、すでにデフォルトのSolrプロバイダーがあります。次の情報は、別の実装を使用する必要がある場合にのみ適用できます。

Sitecore SolrプロバイダーはIOC (Inversion of Control) コンテナーを使用するため、その中のすべての要素を再コンパイルせずに交換できます。デフォルトのSitecoreインストールには、Solrコネクタのデフォルト実装が含まれています (SolrNet.dll)。

別のIOCを使用する必要がある場合は、Sitecoreのバージョンに対応するSolrサポート パッケージをダウンロードしてください。

  • Sitecore 8.2初期リリースの場合は、dev.sitecore.netからダウンロードします (追加ツール セクション)。

  • Sitecore 8.2 Update-1以降の場合は、GitHubのSitecore/Solr.SupportPackageリポジトリ からダウンロードします。

このパッケージには、インストールの /binフォルダにコピーする必要があるファイルが含まれています。これらのパッケージは、NuGetを使用して取得することもできます。

現在、次のバージョンが検証されていますが、それ以降のバージョンも機能する可能性があります。

  • キャッスルウィンザーv3.1.0.0

  • AutoFac v2.5.2 (英語)

  • Ninject v3.0.0

  • ストラクチャマップv2.6.2

  • ユニティv2.1.505

手記

これらのプロジェクトはオープンソースであり、定期的に更新されます。NuGetコマンド ラインの – Versionスイッチを使用して、NuGetから特定のバージョンのコンテナーを要求する必要がある場合があります。

正しいサポートDLLファイルを選択します

適切なIOCコンテナを選択する場合は、コンテナにインストールされているDLLと共に、正しいサポートDLLをbinディレクトリに含めてください。

コンテナに応じて、次のDLLファイルも/binフォルダにコピーしてください。

IOCコンテナ

DLLファイル

キャッスルウィンザー

Castle.Facilities.SolrNetIntegration.dll

Sitecore.ContentSearch.SolrProvider.CastleWindsorIntegration.dll

オートファクター

AutofacContrib.CommonServiceLocator.dll

AutofacContrib.SolrNet.dll

Sitecore.ContentSearch.SolrProvider.AutoFacIntegration.dll

Nインジェクション

CommonServiceLocator.NinjectAdapter.dll

Ninject.Integration.SolrNet.dll

Sitecore.ContentSearch.SolrProvider.NinjectIntegration.dll

ストラクチャマップ

StructureMap.SolrNetIntegration.dll

Sitecore.ContentSearch.SolrProvider.StructureMapIntegration.dll

統一

Unity.SolrNetIntegration.dll

Sitecore.ContentSearch.SolrProvider.UnityIntegration.dll

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

このセクションの手順に従って、Solrと連携するようにSitecoreを設定します。

手記

設定ファイルを直接変更しないでください。代わりに、実行時に必要な変更を実行するパッチ ファイルを作成する必要があります。

Solr設定ファイルを有効にする

WebサイトのInclude フォルダには、いくつかの設定ファイルが含まれています。Lucene検索はデフォルトで有効になっています。Solrを使用する場合は、通常、Lucene検索構成ファイルを無効にし、Solr構成ファイルを有効にします (ただし、技術的には、一部のインデックスにLuceneを使用し、他のインデックスにSolrを使用することは可能です)。これにより、Solrの統合が可能になり、すべてのSolr固有の構成設定にアクセスできるようになります。

設定ファイルを切り替えてSolrを有効にし、Luceneを無効にするには:

  1. WebサイトのIncludeフォルダーに移動します。wwwroot\<sitename>;\App_Config\Include\

  2. 次のLucene設定ファイルを無効にするには、ファイル名拡張子に .exampleを追加します。

    Sitecore.ContentSearch.Lucene.DefaultIndexConfiguration.config

    Sitecore.ContentSearch.Lucene.Index.Analytics.config

    Sitecore.ContentSearch.Lucene.Index.Core.config

    Sitecore.ContentSearch.Lucene.Index.Master.config

    Sitecore.ContentSearch.Lucene.Index.Web.config

    Sitecore.ContentSearch.Lucene.Indexes.Sharded.Core.config

    Sitecore.ContentSearch.Lucene.Indexes.Sharded.Master.config

    Sitecore.ContentSearch.Lucene.Indexes.Sharded.Web.config

  3. ファイル名から .exampleを削除して、Sitecore.ContentSearch.Solr.*.configファイルを有効にします。

    Sitecore.ContentSearch.Solr.DefaultIndexConfiguration.config.example

    Sitecore.ContentSearch.Solr.Index.Analytics.config.example

    Sitecore.ContentSearch.Solr.Index.Core.config.example

    Sitecore.ContentSearch.Solr.Index.Master.config.example

    Sitecore.ContentSearch.Solr.Index.Web.config.example

Solr固有設定

次のSolr固有の設定は、Sitecore.ContentSearch.Solr.DefaultIndexConfiguration.configファイルにあります。

  • Solrサービス・アドレスの指定

    この設定は、Solrサーバーが配置されている場所をSitecoreに通知します。Sitecoreはコア名を追加するため、ベース アドレスのみを指定する必要があります。

  • 検索プロバイダーの有効化

    この設定は、Solrが有効になっていることをSitecoreに伝え、次にインデックスにアクセスしたときにSolrサーバーへの接続を試みます。接続できない場合は、エラーが発生します。無効にするには、これをデフォルト設定のLuceneに戻します。

    <setting name="ContentSearch.Provider" value="Solr" />(デフォルト: "Lucene")

  • 検索結果の最大数

    これは、Sitecore.ContentSearch.configファイルにあるグローバル設定です。

    この設定には、クエリで制限が指定されていない場合に1つの要求で取得するドキュメントの最大数が含まれます (例: Take(10))。パフォーマンス上の理由から、実行中のクエリから返される結果の数をクエリし、ページングなどを使用してそれらを正しく処理することを覚えておくことが重要です。

    <setting name="ContentSearch.SearchMaxResults" value="500" />

  • バッチモードの有効化

    アイテムにインデックスが付けられると、作成されたドキュメントが検索インデックスに保存されます。デフォルトのLuceneプロバイダーが有効になっている場合、各書き込みはローカル ディスク上のファイルにフラッシュされます。Solrプロバイダーを使用してドキュメントを作成する場合、更新はネットワーク経由で移動する必要があります。

    インデックスが再構築されると、多数のドキュメント更新が作成されるため、ネットワーク トラフィックが大量に発生し、効率が悪くなる可能性があります。したがって、バッチを使用すると、インデックスのサイズが大きくなるにつれて更新プロセスを最適化できます。

    <setting name="ContentSearch.Update.BatchModeEnabled" value="true" />

    <setting name="ContentSearch.Update.BatchSize" value="500" />

    バッチ・モード (デフォルトで有効) は、これらのドキュメントの更新を受け取り、バッチが特定のサイズに達したときにのみSolrサーバーにフラッシュします。

    インデックスが大きくなるにつれて、このプロセスを最大限に活用するために、このバッチ サイズを増やすことができます。

IOCコンテナの指定

global.asaxファイルを更新して、アプリケーションの起動時にSolrプロバイダーが読み込まれるようにする必要があります。これを行うには、アプリケーションが提供されているアプリケーション クラスの1つから継承するように指定します。特定の構成は、選択したIOCコンテナによって異なります。

たとえば、Castle Windsorを使用するようにglobal.asaxファイルを更新するには、次のようにします。

  1. Webサイトのルート フォルダーで、global.asaxファイルを見つけます。 wwwroot\<sitename>\Website

  2. global.asaxを開き、最初の行で以下を置き換えます。

    Inherits="Sitecore.Web.Application"

    Inherits="Sitecore.ContentSearch.SolrProvider.CastleWindsorIntegration.WindsorApplication"

    これにより、Castle WindsorのIOC (Inversion of Control) コンポーネントが登録され、Solr統合が正しく機能するようになります。

または、Sitecore.Web.Application参照を次のいずれかのIOCコンテナへの参照に置き換えます。

IOCコンテナ

クラスクラス

キャッスルウィンザー

<%@Application Language='C#' Inherits="Sitecore.ContentSearch.SolrProvider.CastleWindsorIntegration.WindsorApplication" %>

オートファック

<%@Application Language='C#' Inherits="Sitecore.ContentSearch.SolrProvider.AutoFacIntegration.AutoFacApplication" %>

Nインジェクション

<%@Application Language='C#' Inherits="Sitecore.ContentSearch.SolrProvider.NinjectIntegration.NinjectApplication" %>

ストラクチャマップ

<%@Application Language='C#' Inherits="Sitecore.ContentSearch.SolrProvider.StructureMapIntegration.StructureMapApplication" %>

統一

<%@Application Language='C#' Inherits="Sitecore.ContentSearch.SolrProvider.UnityIntegration.UnityApplication" %>

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

Solrインデックス作成システムの使用を開始する前に、Sitecoreコンテンツのインデックスを再作成する必要があります。

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

  1. Control Panelで、Indexing managerをクリックします。

  2. Select all」を選択し、「Rebuild」をクリックします。

この記事を改善するための提案がある場合は、 お知らせください!