我正在尝试在同一主机上配置 Solr 的两个实例,并且我想覆盖solr.home
每个实例。
我按照Solr Tomcat wikiCatalina/localhost/
中的建议创建了两个文件:
$ cat solr-prod.xml
<Context docBase="webapps/solr-prod.war" debug="0" crossContext="true" >
<Environment name="solr/home" type="java.lang.String" value="/opt/solr-prod/home" override="true" />
</Context>
$ cat solr-qa.xml
<Context docBase="webapps/solr-qa.war" debug="0" crossContext="true" >
<Environment name="solr/home" type="java.lang.String" value="/opt/solr-qa/home" override="true" />
</Context>
顺便提一句。我尝试使用绝对路径,但没有成功。
但是,在 Tomcat 重新启动后,它会忽略我的配置:
$ sudo sh -x /etc/init.d/tomcat7 start
...
+ catalina_sh start
+ sed s/\"/\\\"/g
+ echo -Djava.awt.headless=true -Dsolr.solr.home=/opt/solr/home -Dsolr.data.dir=/opt/solr/data -Xmx128m -XX:+UseConcMarkSweepGC
+ JAVA_OPTS=-Djava.awt.headless=true -Dsolr.solr.home=/opt/solr/home -Dsolr.data.dir=/opt/solr/data -Xmx128m -XX:+UseConcMarkSweepGC
通过设置它自己的-Dsolr.solr.home
,-Dsolr.solr.home
我不知道它来自哪里。
上面的配置文件是根据Tomcat Web Application Manager在/manager/html
.
问题是当我通过 web 访问我的 Solr4 实例时,我可以看到 Args 为它们设置了:
-Dsolr.data.dir=/opt/solr/data
-Dsolr.solr.home=/opt/solr/home
所以似乎我的环境变量由于某种原因被忽略了,它被参数覆盖了。
我在或 in (已注释)的任何地方都没有/opt/solr
硬编码参数。/var/lib/tomcat7
/usr/share/tomcat7
WEB-INF/web.xml
任何想法如何正确设置这些环境变量?
我在
solr.home
和solr.data
中找到了这些默认设置/etc/default/tomcat7
。其他可能的位置可能在:
/usr/share/tomcat7/defaults.template
作为 的一部分JAVA_OPTS
。从那里删除 solr 变量,它允许根据定义的配置文件使用单独的 solr 实例
conf/Catalina/localhost
。因此,对于每个实例,都应创建单独的 XML 文件。
例如:
其中
value
ofsolr/home
是 solr 的路径,/opt/solr/home
或者/var/lib/solr
(无论您拥有或已经选择的路径)。