インデックスの場所と形式

Solr がインデックスを保存する場所と方法は、構成可能なオプションです。

dataDir パラメーターでインデックスデータの場所を指定する

デフォルトでは、Solr はインデックスデータをコアのインスタンスディレクトリ(instanceDir)の下の /data というディレクトリに保存します。インデックスデータを保存する別のディレクトリを指定する場合は、コアの core.properties ファイルで dataDir を構成するか、solrconfig.xml ファイルで <dataDir> パラメーターを使用できます。別のディレクトリは、絶対パスまたは SolrCore の instanceDir に対する相対パス名で指定できます。例:

<dataDir>/solr/data/${solr.core.name}</dataDir>

${solr.core.name} 置換により、現在のコアの名前が置換され、各コアのデータが個別のサブディレクトリに保持されるようになります。

ユーザー管理インデックスレプリケーション を使用して Solr インデックスをレプリケートする場合、<dataDir> ディレクトリはレプリケーション構成で使用されるインデックスディレクトリに対応する必要があります。

環境変数 SOLR_DATA_HOME が定義されている場合、または solr.data.home が DirectoryFactory 用に構成されている場合、または solr.xml に要素 <solrDataHome> が含まれている場合、データディレクトリの場所は <SOLR_DATA_HOME>/<instance_name>/data になります。

インデックスの DirectoryFactory を指定する

デフォルトの solr.NRTCachingDirectoryFactory はファイルシステムベースであり、現在の JVM およびプラットフォームに最適な実装を選択しようとします。 solr.MMapDirectoryFactory または solr.NIOFSDirectoryFactory を指定することで、特定の実装や構成オプションを強制できます。

<directoryFactory name="DirectoryFactory"
                  class="solr.MMapDirectoryFactory">
  <bool name="preload">true</bool>
</directoryFactory>

solr.RAMDirectoryFactory はメモリベースで永続的ではなく、レプリケーションでは機能しません。この DirectoryFactory を使用して、インデックスを RAM に保存します。

<directoryFactory class="org.apache.solr.core.RAMDirectoryFactory"/>

Hadoop を使用していて、インデックスを HDFS に保存する場合は、上記の実装のいずれかではなく、solr.HdfsDirectoryFactory を使用する必要があります。詳細については、「HDFS 上の Solr」セクションを参照してください。