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 replication to replicate the Solr index (as described in Legacy Scaling and Distribution), then the <dataDir>
directory should correspond to the index directory used in the replication configuration.
Specifying the DirectoryFactory For Your Index
The default solr.StandardDirectoryFactory
is filesystem based, and tries to pick the best implementation for the current JVM and platform. You can force a particular implementation and/or config options by specifying solr.MMapDirectoryFactory
, solr.NIOFSDirectoryFactory
, or solr.SimpleFSDirectoryFactory
.
<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"/>
If you are using Hadoop and would like to store your indexes in HDFS, you should use the |