Настройка нескольких ядер Tomcat SOLR
Я потратил все утро, пытаясь настроить несколько ядер на установке SOLR, которая работает под сервером Apache Tomcat без успеха. Мой файл 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?
Ответы
Ответ 1
Проверьте, что ваши значения instanceDir относятся к -Dsolr.solr.home. Если -Dsolr.solr.home является "многоядерным", тогда ваш экземплярDir должен быть только "core0".
Если вы поместите свою папку данных в свой экземплярDir, вам не нужно указывать ее путь:
<?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}.
UPDATE
Чтобы установить переменную solr.solr.home с помощью Tomcat, перед запуском Tomcat используйте переменную окружения JAVA_OPTS:
JAVA_OPTS="-Dsolr.solr.home=multicore"
export JAVA_OPTS
tomcat/bin/catalina.sh start
Убедитесь, что "многоядерный" установлен правильно относительно рабочего каталога. Например, если solr.solr.home = 'multicore', вы должны запустить Tomcat из каталога, где находится "многоядерный".
Ответ 2
Это очень поздно в игре, но я просто разместил сообщение в блоге с инструкциями для многоядерного экземпляра SOLR на Tomcat, который читает
- Загрузили и установили 32-разрядную/64-разрядную службу Windows Установщик для Tomcat
- Установленный Tomcat на сервере (нет специальные инструкции здесь - просто запустите установку и установите где угодно вы хотите)
- Проверьте установку Tomcat, перейдя по адресу http://localhost: 8080
- Изменить Tomcat's conf/server.xml и добавить URIEncoding = "UTF-8" к < Разъем > как показано здесь.
- Загрузить SOLR из одного из найденных здесь зеркал (скачан apache-solr-1.4.1.zip пакет) и разархивируйте пакет.
- Создайте каталог, в котором SOLR (в моем случае я использовал e:\inetpub\solr)
- Копировать содержимое каталога example\solr для вашего Каталог хостов SOLR (в моем случае e:\inetpub\solr)
- Создать каталогов в вашем каталоге хостов SOLR для каждого из ядер, которые вы хочу создать (я создал дюжину или около того папок для каждого ядра, которое я хотел для создания в каталоге e:\inetpub\solr. Каталоги включая en-US, en-CA, en-GB и т.д.).
- Скопируйте файл solr.xml из example\multicore и вставьте его в свой Каталог хостов SOLR (e:\inetpub\solr для моего примера)
- Изменить файл solr.xml, чтобы включить информацию для каждого созданных вами сердечников (если вы создали папку под своим хостом для ядро с именем ru-US, затем добавьте следующее под & Л; сердечники > элемент в файле solr.xml: < core name= "en-US" instanceDir = "en-US" / > )
- Остановить службу Tomcat
- Скопировать файл * solr *.war из каталог dist в распакованном пакете SOLR в папку Tomcat webapps.
- Переименуйте * solr *.war файл to solr.war
- В области уведомлений в правой части панели задач Windows щелкните правой кнопкой мыши значок Apache Tomcat 7 и выберите Настроить
- Нажмите Javaи добавьте следующее в текст Параметры Java. box: -Dsolr.solr.home = e:\inetpub\solr (изменение e:\inetpub\solr в любом месте, где размещается ваш SOLR)
- Нажмите ОК в диалоговом окне, а затем запустите Tomcat service
- Откройте файлы conf\solrconfig.xmlпод каждым из созданных вами ядер и измените dataDir, чтобы указать на конкретный. Каталог Если этот шаг не будет завершен, все ваши ядра будут использовать то же хранилище данных для своих данных.
- Остановить и перезапустите службу Tomcat
- Проверьте, что ваши ядра запущены путем запуска запроса из веб-браузера http://localhost: 8080/solr/en-US/select? q = *: * (заменить "en-US" с тем, что вы назвали одним из ваших ядер)