Назад | Перейти на главную страницу

Как переопределить значение по умолчанию solr.home в файлах XML в каталоге Catalina / localhost?

Я пытаюсь настроить два экземпляра 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 (какой бы путь вы ни выбрали или уже выбрали).