Я пытаюсь настроить два экземпляра Solr на одном хосте, и я хочу переопределить solr.home
для каждого экземпляра.
Я создал два файла в Catalina/localhost/
как предложено в Solr Tomcat вики:
$ 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
.
Проблема в том, что когда я обращаюсь к своим экземплярам Solr4 через Интернет, я вижу, что для обоих из них установлены аргументы:
-Dsolr.data.dir=/opt/solr/data
-Dsolr.solr.home=/opt/solr/home
Кажется, что моя переменная среды по какой-то причине игнорируется и переопределяется аргументом.
У меня нет /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.
Например:
<Context docBase="webapps/solr.war" debug="0" crossContext="true" >
<Environment name="solr/home" type="java.lang.String" value="/opt/solr/home" override="true" />
</Context>
где value
из solr/home
путь к solr, либо /opt/solr/home
или /var/lib/solr
(какой бы путь вы ни выбрали или уже выбрали).