intra-mart Accel Platform Solr管理者ガイド 第5版 2018-08-01

5. Solrの設定

Solr の設定項目について説明します。

5.1. コアの追加・削除(solr.xml)

5.1.1. コアとは

コアはRDBのスキーマに相当し、コアごとにスキーマ定義やクエリの設定を持つことができます。
1つのSolrインスタンスの中に複数のコア(マルチコア)を設定することで、コアごとにインデックスが保持されます。
弊社から提供しているセットアップツールで作成するSolr環境は初期状態で default というコアが設定されています。
セットアップツールが出力するコアの設定ファイル(<schema.xml>,<solrconfig.xml>など)にはIM-ContentsSearch用の設定が最初から記載されています。

5.1.2. intra-mart Accel Platformのマルチテナント環境におけるSolrサーバの構成

intra-mart Accel Platformでは、WARファイルによる複数テナントおよび、バーチャルテナントによる複数テナントで運用する場合には、テナントごとにコアを設定し、テナント単位でインデックスの管理を行います。
WARファイルによる複数テナントおよび、バーチャルテナントによる複数テナント環境でのSolrサーバの構成は以下の2つのパターンが考えられます。
  1. テナントごとにSolrサーバを構築する
  2. 1つのSolrサーバで、テナントごとにインデックスを管理する(コアを複数作成する)。
2の構成にする場合には、Solrコア構成ファイル <%SOLR_HOME%/solr.xml> の編集が必要です。
データの増加に応じてインデックスが増加することにより検索や最適化の処理速度が低下する場合があるため、可能であれば、テナントごとにSolrのインスタンスを分けて(1の構成で)運用することを推奨します。
図 1つのSolrインスタンスに複数のコアを設定した場合のWARファイルによる複数テナントおよび、バーチャルテナントによる複数テナント環境の概念

注意

IM-ContentsSearchではコンテンツを識別するユニークキーに ID フィールドを指定しており、別々のテナントでコンテンツのIDが生成されるため、各テナントに同じSolrコアを設定することはできません。

5.1.3. コアの追加

sample というコアを作成する例の手順を紹介します。
default のコアがあることを前提とします。
  1. <solr.xml>の編集

    <%SOLR_HOME%/solr.xml>の core タグを以下のように追加します。
    <cores adminPath="/admin/cores" >
       <core name="default" instanceDir="default" />
       <core name="sample" instanceDir="sample" />
    </cores>
    
  2. インスタンスディレクトリの作成

    %SOLR_HOME%/default をコピーして %SOLR_HOME% ディレクトリ内に貼り付け、コピーしたディレクトリ名を sample に変更します。
  3. Solrの起動

    アプリケーションサーバを起動して、正常に起動することを確認します。
    起動時に以下のようなエラーが表示される場合は設定が正しく行われていない可能性がありますので、設定内容を確認してください。
    java.lang.RuntimeException: Can't find resource 'solrconfig.xml' in classpath or 'solr\sample\conf\'
    
  4. Solr管理画面の確認

    ブラウザでSolr管理画面が表示できることを確認してください。

    http://<HOST>:<PORT>/solr/default/admin/
    

5.1.4. コアの削除

sample というコアを削除する例の手順を紹介します。
  1. <solr.xml>の編集

    <%SOLR_HOME%/solr.xml>のコア名 sample が記述されている core タグを削除します。
  2. データ保存ディレクトリの削除

    <%SOLR_HOME%/%コア名%/conf/solrconfig.xml> の dataDir タグに指定されているデータ保存ディレクトリを削除します。
    データ保存ディレクトリについては 基本設定(solrconfig.xml) を参照してください。
  3. インスタンスディレクトリの削除

    %SOLR_HOME%/sample のディレクトリを削除します。
  4. Solrの起動

    アプリケーションサーバを起動して、正常に起動することを確認します。
    起動時に以下のようなエラーが表示される場合は設定が正しく行われていない可能性がありますので、設定内容を確認してください。
    java.lang.RuntimeException: Can't find resource 'solrconfig.xml' in classpath or 'solr\sample\conf\'
    
  5. Solr管理画面の確認

    ブラウザでSolr管理画面が表示できることを確認してください。

    http://<HOST>:<PORT>/solr/default/admin/
    

5.2. コアごとの設定

コアごとに下記の設定を行うことが可能です。

5.2.1. 基本設定(solrconfig.xml)

弊社から提供しているセットアップツールで出力する<solrconfig.xml>はIM-ContentsSearch用の設定が記述されています。
<solrconfig.xml>は %SOLR_HOME%/%コア名%/conf ディレクトリ内に保存されています。
以下に記載する項目以外の内容は変更しないでください。
  • インデックス保存ディレクトリ

    インデックスが保存される場所です。初期状態では %SOLR_HOME%/%コア名%/data ディレクトリに保存されます。
    相対パスで指定した場合はアプリケーションサーバを起動したディレクトリによってカレントディレクトリが変わるため、絶対パスでの指定を推奨します。
    <dataDir>${solr.data.dir:}</dataDir>
    

5.2.2. スキーマの設定(schema.xml)

弊社から提供しているセットアップツールで出力する<schema.xml>はIM-ContentsSearch用のスキーマ定義が記述されています。
IM-ContentsSearchのためのフィールドやアナライザの定義が記載されているため、必要がない限り<schema.xml>の内容を変更しないでください。
<schema.xml>は %SOLR_HOME%/%コア名%/conf ディレクトリ内に保存されています。

コラム

IM-ContentsSearch が利用するSolrサーバのフィールド(<schema.xml>で定義されているフィールド)は、IM-ContentsSearchの検索フィールド設定(solr-field-config)によって指定されています。
詳細は以下のドキュメントを参照してください。