我試圖將我的Solr內核的數據直接從實例目錄下的默認'data'目錄中更改。我使用絕對路徑,因爲我的Solr核心的實例和conf目錄被埋在其他地方(在我的GitHub目錄中)。我認爲這將是在core.properties指定此簡單:Solr:在Windows中更改數據目錄
dataDir=C:\foo\bar\my_new_data_directory
裏面的「my_new_data_directory」目錄有以下幾種Solr的目錄:
- index
- tlog
我使用Windows和我得到啓動Solr時出現以下錯誤:
ERROR - 2014-01-17 12:40:34.578; org.apache.solr.core.CoreContainer; Unable to create core: collection1
org.apache.solr.common.SolrException
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:680)
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:625)
at org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer.java:557)
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:592)
at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:271)
at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:263)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: The filename, directory name, or volume label syntax is incorrect
at java.io.WinNTFileSystem.canonicalize0(Native Method)
at java.io.Win32FileSystem.canonicalize(Unknown Source)
at java.io.File.getCanonicalPath(Unknown Source)
at org.apache.solr.core.StandardDirectoryFactory.normalize(StandardDirectoryFactory.java:47)
at org.apache.solr.core.DirectoryFactory.getDataHome(DirectoryFactory.java:246)
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:677)
... 13 more
看起來我沒有正確指定文件路徑。它應該如何指定?
-Dsolr.data.dir = C:\ foo \ bar \ my_new_data_directory的作品,但它似乎成爲所有核心的數據目錄,如果我有多個核心,我會得到錯誤。有沒有辦法讓Solr查看數據文件夾的子文件夾來查找每個核心的數據?例如:C:\ foo \ bar \ core1和C:\ foo \ bar \ core2 我嘗試使用技術嘗試爲每個核心指定子文件夾,但這不起作用。 –