solr.NRTCachingDirectoryFactory在组合dataDir的时候会根据core补全绝对路径,solr.RAMDirectoryFactory在组合dataDir的时候会忽略处理路径。
在solr.RAMDirectoryFactory模式下,每个core会以安装目录为准创建dataDir,并将文件锁写入installDir\dataDir\index目录下,将事务日志写入installDir\dataDir\tlog目录下,事务日志在写入操作结束后会自动删除。若保持<dataDir>${solr.data.dir:}</dataDir>默认配置,会导致ERROR TransactionLog New transaction log already exists:data/tlog/tlog.*事务日志冲突。通过修改<dataDir>${solr.solr.home:}/${solr.core.name:}/${solr.core.dataDir:}</dataDir>可将dataDir保存在每个core的名称目录下,达到和solr.NRTCachingDirectoryFactory类似的效果。
在solr.RAMDirectoryFactory模式下,每个core会以安装目录为准创建dataDir,并将文件锁写入installDir\dataDir\index目录下,将事务日志写入installDir\dataDir\tlog目录下,事务日志在写入操作结束后会自动删除。若保持<dataDir>${solr.data.dir:}</dataDir>默认配置,会导致ERROR TransactionLog New transaction log already exists:data/tlog/tlog.*事务日志冲突。通过修改<dataDir>${solr.solr.home:}/${solr.core.name:}/${solr.core.dataDir:}</dataDir>可将dataDir保存在每个core的名称目录下,达到和solr.NRTCachingDirectoryFactory类似的效果。