2010-04-26 3 views
13

Я потратил все утро, пытаясь настроить несколько ядер на установке SOLR, которая работает под сервером Apache Tomcat без успеха. Мой файл solr.xml выглядит следующим образом:Настройка множественных ядер Tomcat SOLR

<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?

+0

С какими версиями Tomcat и Apache это связано? У меня такая же проблема, но я не могу найти эти файлы или настройки конфигурации вообще. Я на Tomcat6, Solr 3.6, Ubuntu. –

ответ

10

Проверьте, что ваши значения instanceDir относятся к -Dsolr.solr.home. Если -Dsolr.solr.home является «многоядерным», тогда ваш экземплярDir должен быть только «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}.

UPDATE

Чтобы установить solr.solr.home переменного с Tomcat, используйте переменные окружения JAVA_OPTS перед запуском Tomcat:

JAVA_OPTS="-Dsolr.solr.home=multicore" 
export JAVA_OPTS 
tomcat/bin/catalina.sh start 

Убедитесь, что "многоядерный" правильно установлен по отношению к рабочий каталог. Например, если solr.solr.home = 'multicore', вы должны запустить Tomcat из каталога, где находится «многоядерный».

+0

Спасибо за быстрый answeer Паскаль. Как я могу проверить, что такое мой solr.solr.home? Я запускаю solr на Tomcat, а не Jetty, поэтому не могу установить это в командной строке при запуске start.jar. Я пытаюсь выполнить описанный выше файл solr.xml, но при попытке посетить http: // devel: 12345/solr/core0/admin/ Тип сообщения Состояние Сообщение/solr/core0/admin/ Описание Запрашиваемая ресурс (/ solr/core0/admin /) недоступен. Любые идеи, что это может быть? – Sfairas

+0

С помощью Tomcat вы можете использовать переменную среды JAVA_OPTS для установки -Dsolr.solr.перед вызовом сценария каталины. –

+0

OK Я установил JAVA_OPTS = '- Dsolr.solr.home = multicore', но до сих пор не может заставить его работать. Я знаю, что это проблема конфигурации, но я просто не могу понять, что мне здесь не хватает. – Sfairas

6

Это вид в конце игры, но я просто поставить сообщение в блоге с instructions for a multicore SOLR instance on Tomcat, который гласит:

  1. скачали и установили 32-бит/64-бит Windows Service Installer для Tomcat
  2. установлен Tomcat на сервере (не специальных инструкций здесь - просто запустить установку и установить там, где вы хотите)
  3. Проверенный установку Tomcat, перейдя на HTTP: // локальный: 8080
  4. Edit для Tomcat конф/server.xml и добавить URIEncoding = "UTF-8" к <Connector> элемента, как показано здесь
  5. Скачать ГУМЗ одного из зеркал, найденных здесь   (загруженную Апач-Solr-1.4.1 .zip пакета) и распаковать пакет
  6. Создайте директорию, где SOLR будет проходить с (в моем случае я использовал е: \ Inetpub \ Solr)
  7. Копировать содержимое каталога примера \ Solr к вашему Справочник хозяев SOLR (в моем случае e: \ inetpub \ solr)
  8. Cr eate каталогов под вашим каталогом хостов SOLR для каждого из ядер, которые вы создали (я создал десяток или около того папок для каждого ядра, я хотел для создания в каталоге e: \ inetpub \ solr.   Каталоги включены в en-US, en-CA, en-GB и т. Д.)
  9. Скопируйте solr.XML-файл из например \ многоядерного каталога и вставьте его в свой каталог хоста Solr (е: \ Inetpub \ Solr для моего примера)
  10. Редактировать файл solr.xml включать информацию для каждого ядра, созданные (если вы создали папку под хостом для ядра имени ан-US, затем добавьте следующий текст в < ядрах > элемента в solr.xml файла: < со повторно название = "EN-US" instanceDir = "EN-US"/>)
  11. Остановить Tomcat Service
  12. Скопируйте * Solr war-файл из   расстояние каталога в расстегнутой пакете SOLR к вашему Tomcat WebApps папку
  13. Переименовать * SOLR war-файл solr.war
  14. в области уведомлений в правой части панели задач Windows, щелкните правую кнопку мыши на Apache Tomcat 7 и выберите Настройка
  15. Щелкните на Java вкладку и добавьте следующие строки в Параметры Java текстовых окно: -Dsolr.solr.home = е: \ Inetpub \ Solr (изменение е: \ Inetpub \ Solr туда, где ваш SOLR в настоящее время размещения)
  16. Нажми OK в диалоговом окне, а затем запуск Кот служба
  17. Откройте конф \ solrconfig.xml файлов по каждому из созданных сердечников и изменить dataDir элемент для указания на конкретный .   Если этот шаг не будет завершен, все ваши ядра будут использовать тот же хранилище данных для своих данных.
  18. Stop и повторного запуска Tomcat Service
  19. тест, что ваши ядра работает , выполнив запрос из веб-браузера HTTP: // локальный: 8080/Solr/EN-US/выбрать ц = *: *   (замените «en-US» на то, что вы назвали одним из ваших ядер)
Смежные вопросы