Index Location and Format

Where and how Solr stores its indexes are configurable options.

Specifying a Location for Index Data with the dataDir Parameter

By default, Solr stores its index data in a directory called /data under the core’s instance directory (instanceDir). If you would like to specify a different directory for storing index data, you can configure the dataDir in the core.properties file for the core, or use the <dataDir> parameter in the solrconfig.xml file. You can specify another directory either with an absolute path or a pathname relative to the instanceDir of the SolrCore. For example:

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

The ${solr.core.name} substitution will cause the name of the current core to be substituted, which results in each core’s data being kept in a separate subdirectory.

If you are using User-Managed Index Replication Index Replication to replicate the Solr index, then the <dataDir> directory should correspond to the index directory used in the replication configuration.

If the environment variable SOLR_DATA_HOME is defined, or if solr.data.home is configured for your DirectoryFactory, or if solr.xml contains an element <solrDataHome> then the location of data directory will be <SOLR_DATA_HOME>/<instance_name>/data.

Specifying the DirectoryFactory For Your Index

The default solr.NRTCachingDirectoryFactory is filesystem based, and tries to pick the best implementation for the current JVM and platform. You can force a particular implementation and/or configuration options by specifying solr.MMapDirectoryFactory or solr.NIOFSDirectoryFactory.

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

The solr.RAMDirectoryFactory is memory based, not persistent, and does not work with replication. Use this DirectoryFactory to store your index in RAM.

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