4
我想從舊的solr.xml格式遷移到4.4中的核心自動發現,但我遇到了一個問題,就像我以前一樣在覈心之間共享配置(solrconfig.xml,schema.xml和相關文件)。如何在Solr 4.4+的核心之間共享模式和配置?
我的老solr.xml是這樣的:
<?xml version="1.0" encoding="UTF-8" ?>
<solr persistent="true">
<cores defaultCoreName="core1" adminPath="/admin/cores">
<core instanceDir="."name="core1" dataDir="core/core1"/>
<core instanceDir="."name="core2" dataDir="core/core2"/>
...
</cores>
</solr>
目錄結構:
solr.xml
conf
schema.xml
solrconfig.xml
...
core
core1
core2
...
一切正常,這樣一來,整個構造內核之間共享。它正在工作,因爲所有內核的實例目錄相同,並且conf目錄在其下。
在4.4的核心自動發現中,不可能爲所有核心具有相同的實例目錄。雖然,我發現一個可行的解決方案:
目錄結構:
solr.xml
common
conf
schema.xml
solrconfig.xml
...
core
core1
core.properties
data
core2
core.properties
data
...
solr.xml:
<solr>
<str name="sharedLib">common</str>
</solr>
core.properties:
name=core1
它的工作原理是因爲通過conf目錄在classpath中,這要感謝shareLib指令。但它不能完全令人滿意,因爲我不能顯示在管理Web應用程序的配置文件,我得到以下異常:
java.lang.NullPointerException
at org.apache.solr.handler.admin.ShowFileRequestHandler.showFromFileSystem(ShowFileRequestHandler.java:210)
at org.apache.solr.handler.admin.ShowFileRequestHandler.handleRequestBody(ShowFileRequestHandler.java:122)
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1904)
是否有共享4.4所有核心之間的配置更好的辦法?
這絕對作品,但我需要爲每個核心做到這一點。我用這個腳本完成了這個工作: '用於核心$ SOLR_HOME/core/*;做ln -s $ SOLR_HOME/common/conf $ core/conf; done' –