SolrConfig中的DataDir和DirectoryFactory

2018-12-08 14:32 更新

Solr在哪里和如何存儲其索引是可配置的選項(xiàng)。

使用dataDir參數(shù)指定索引數(shù)據(jù)的位置

默認(rèn)情況下,Solr將其索引數(shù)據(jù)存儲在一個(gè)名為/data的目錄下中,該目錄位于核心的實(shí)例目錄下(instanceDir)。如果您想要指定不同的目錄來存儲索引數(shù)據(jù),則可以在core.properties文件中為核心配置dataDir,或使用solrconfig.xml文件中的<dataDir>參數(shù)。您可以使用絕對路徑或相對于SolrCore的instanceDir的路徑名指定另一個(gè)目錄。例如:

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

所述${solr.core.name}取代將導(dǎo)致當(dāng)前核心的名稱被取代,這導(dǎo)致每個(gè)核心的數(shù)據(jù)被保持在一個(gè)單獨(dú)的子目錄中。

如果使用復(fù)制來復(fù)制Solr索引(如傳統(tǒng)擴(kuò)展和分發(fā)中所述),那么該<dataDir>目錄應(yīng)該對應(yīng)于復(fù)制配置中使用的索引目錄。

如果定義了環(huán)境變量 SOLR_DATA_HOME,或者為DirectoryFactory配置了solr.data.home,或者solr.xml包含一個(gè)<solrDataHome>元素,則數(shù)據(jù)目錄的位置將是<SOLR_DATA_HOME>/<instance_name>/data

為索引指定DirectoryFactory

默認(rèn)solr.StandardDirectoryFactory是基于文件系統(tǒng)的,并且試圖為當(dāng)前的JVM和平臺選擇最好的實(shí)現(xiàn)。您可以通過指定solr.MMapDirectoryFactory、solr.NIOFSDirectoryFactory或solr.SimpleFSDirectoryFactory來強(qiáng)制執(zhí)行特定的實(shí)現(xiàn)或配置選項(xiàng)。

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

這solr.RAMDirectoryFactory是基于內(nèi)存的,不是持久性的,并且不適用于復(fù)制。使用此DirectoryFactory將您的索引存儲在RAM中。

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

如果您正在使用Hadoop并希望將索引存儲在HDFS中,那么應(yīng)該使用solr.HdfsDirectoryFactory,而不是上述任何一種實(shí)現(xiàn)。有關(guān)更多細(xì)節(jié),請參見在HDFS上運(yùn)行Solr的部分。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號