索引位置與格式

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,或為您的 DirectoryFactory 設定了 solr.data.home,或 solr.xml 包含元素 <solrDataHome>,則資料目錄的位置將為 <SOLR_DATA_HOME>/<instance_name>/data

為您的索引指定 DirectoryFactory

預設的 solr.NRTCachingDirectoryFactory 是基於檔案系統的,並且嘗試為目前的 JVM 和平台選擇最佳實作。您可以透過指定 solr.MMapDirectoryFactorysolr.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 一節。