我們有一種情況,我們必須創建在單臺機器或多臺不同機器上的不同端口上運行的Solr/Tomcat的多個實例。爲此,我想知道是否可以使用環境變量指定dataDir變量(在solrconfig.xml中),例如:<dataDir>${envvar}/path/to/index</dataDir>
。是否可以在solrconfig.xml中使用dataDir變量的環境變量?
回答
由於我在做類似的設置,我也需要這個。我不認爲這是使用ENV變量的好習慣。您最好使用多核設置或在solr.xml中使用屬性文件。
例如。
<core name="core_1" instanceDir="core_1" properties="core1.properties" />
,然後在core1.properties:
config.datadir=/datadir1
,然後用它在你的solrconfig.xml中:
<dataDir>${config.datadir}</dataDir>
乾杯,
帕特里克
它也可以在data-config.xml中使用嗎? – 2016-03-07 08:27:02
你可以告訴Solr部署一個特定的索引目錄作爲核心。例如,部署在path_to_instance_directory
上http://localhost:8983/solr/coreX
一個Solr的指數,你會怎麼做:
http://localhost:8983/solr/admin/cores?action=CREATE&name=coreX&instanceDir=path_to_instance_directory&config=config_file_name.xml&schema=schem_file_name.xml&dataDir=data
你可以告訴Solr的創建,加載,交換兩個運行核心,換一個正在運行的核心與非活動核心等
是的,你可以做到這一點,但是你需要跳過一對夫婦的箍來設置這個using system properties passed to the JVM當你啓動它。
任何你希望你的環境變量,在您的配置文件的工作,把這樣的變量:
${VAR}
然後,當您啓動JVM,它傳遞變量做:
java -DVAR=$your-system-variable
因此,爲了使這個具體的,在這裏我們做什麼:
java -DINSTALL_ROOT=$INSTALL_ROOT -jar -server start.jar
而我們的配置爲S例如:
<filter class="solr.SynonymFilterFactory" synonyms=${INSTALL_ROOT}/Solr/conf/synonyms.txt />
工程就像一個魅力。
由於上wiki.apache.org解釋的,可以使用系統屬性替換在solrconfig.xml
象下面這樣:
<dataDir>${data.dir}</dataDir>
然後你就可以在屬性指定值文件:
#solrcore.properties
data.dir=/data/solrindex
另一種方式是以這種方式在Solr運行時期間指定數據目錄:
java -Dsolr.data.dir=/data/dir -jar start.jar
,並在XML文件中使用的語法如下:
<dataDir>${solr.data.dir:./solr/data}</dataDir>
我認爲,更好的方法是你solr.home
中定義solr.xml
,如:
<solr persistent="true" sharedLib="lib">
<cores adminPath="/admin/cores">
<core name="core0" instanceDir="core0" dataDir="/var/lib/solr/core0" />
<core name="core1" instanceDir="core1" dataDir="/var/lib/solr/core1" />
</cores>
</solr>
注:我不不認爲你可以在這裏使用任何外部變量。
最後使用JVM系統屬性文件(例如solr.xml
)在conf/Catalina/localhost
,例如:
<Context docBase="webapps/solr.war" crossContext="true">
<Environment name="solr/home" type="java.lang.String" value="/opt/solr/ads_solr" override="true" />
<Environment name="solr/data/dir" type="java.lang.String" value="/var/lib/solr" override="true" />
</Context>
其中solr/home
會的工作,但solr/data/dir
won't work沒有修補你的Solr。
- 1. 是否可以在cgo CFLAGS註釋中使用環境變量?
- 2. 是否可以在postgres sql命令中引用環境變量?
- 3. 竹子變量是否可以自動作爲環境變量使用?
- 4. Elastic Beanstalk環境的名稱是否可用作環境變量?
- 5. 是否有可能在npm/package.json中使用環境變量?
- 6. 是否可以在.sublime-project文件中設置環境變量?
- 7. 是否可以在travis中設置條件環境變量?
- 8. 是否可以在Cucumber中設置一個環境變量?
- 9. 是否可以在Makefile中「取消」環境變量?
- 10. 是否可以在linqpad腳本的引用中使用環境變量?
- 11. 在使用環境變量
- 12. 是否有可能使.gitignore根據環境變量而改變
- 13. 是否可以使用kubernetes中的環境變量禁用服務發現?
- 14. 環境變量,變量名
- 15. java.lang.Process是否可以繼承另一個java.lang.Process的環境變量?
- 16. 使用環境變量%ALLUSERSPROFILE%
- 17. 使用環境變量
- 18. nginx:使用環境變量
- 19. 使用環境變量
- 20. 環境變量
- 21. 環境變量
- 22. 環境變量
- 23. 環境變量
- 24. 環境變量
- 25. 環境變量
- 26. 是否可以一次向PyDev添加多個環境變量?
- 27. 是否可以重新加載(Windows)環境變量?
- 28. 是否可以爲一次測試設置環境變量?
- 29. 是否可以永久設置環境變量?
- 30. 我可以在Podfile中使用Travis環境變量嗎?
不知道,如果你可以使用環境變量,但可以作爲系統屬性解釋[這裏](http://wiki.apache.org/solr/SolrConfigXml#System_property_substitution)。 – nikhil500 2012-02-06 17:48:01