我整个上午都在尝试在Apache Tomcat服务器下运行的SOLR安装上设置多个内核,但没有成功。我的solr.xml看起来像这样:
<solr persistent="false" sharedLib="lib"> <cores adminPath="/admin/cores"> <core name="core0" instanceDir="/multicore/core0"> <property name="dataDir" value="/multicore/core0/data" /> </core> <core name="core1" instanceDir="/multicore/core1"> <property name="dataDir" value="/multicore/core1/data" /> </core> </cores> </solr>
什么是正确的目录结构?我是否需要在solrconfig.xml中进行更改?
检查您的instanceDir值是否相对于-Dsolr.solr.home。如果- Dsolr.solr.home为’multicore’,则您的instanceDir应该仅为“ core0”。
如果将数据文件夹放在instanceDir中,则不必指定其路径:
<?xml version='1.0' encoding='UTF-8'?> <solr persistent="true"> <cores adminPath="/admin/cores"> <core name="core0" instanceDir="core0" /> <core name="core1" instanceDir="core1" /> </cores> </solr>
您不必在solrconfig.xml中设置任何内容。但是,如果您需要独立于核心位置配置处理程序,则可以使用变量$ {solr.core.instanceDir}。
更新
要为Tomcat设置solr.solr.home变量,请在启动Tomcat之前使用JAVA_OPTS环境变量:
JAVA_OPTS="-Dsolr.solr.home=multicore" export JAVA_OPTS tomcat/bin/catalina.sh start
确保相对于工作目录正确设置了“ multicore”。例如,如果solr.solr.home =’multicore’,则必须从“ multicore”所在的目录中启动Tomcat。