Как запустить Solr 4 в Tomcat локально?

Я пытаюсь настроить Solr 4.3 на своем домашнем ПК (в Tomcat 7), но он не запускается. Я установил Tomcat и развернул файл solr.war, который распаковывается и отображается на экране Tomcat Web Apps Manager в Tomcat, но его не работает и нажатие кнопки "Пуск" ничего не делает (поскольку оно уже должно выполняться в первое место).

Вот мой контекстный файл solr.xml в Tomcat, который также дает путь к файлу solr.war и где мои солевые ядра (это значение по умолчанию Collection1):

<Context path="/solr" docBase="C:/LocalApps/Tomcat/apache-tomcat-7.0.40/webapps/solr.war" debug="0" crossContext="true">
<Environment name="solr/home" type="java.lang.String" value="C:/LocalApps/Solr/solr-4.3.0/example/solr/" override="true"/>
</Context>

это журнал ошибок в tomcat:

INFO: Starting Servlet Engine: Apache Tomcat/7.0.40
Jun 09, 2013 11:04:07 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor C:\LocalApps\Tomcat\apache-tomcat-7.0.40\conf\Catalina\localhost\solr.xml
Jun 09, 2013 11:04:07 PM org.apache.catalina.startup.HostConfig deployDescriptor
WARNING: A docBase C:\LocalApps\Tomcat\apache-tomcat-7.0.40\webapps\solr.war inside the host appBase has been specified, and will be ignored
Jun 09, 2013 11:04:07 PM org.apache.catalina.startup.SetContextPropertiesRule begin
WARNING: [SetContextPropertiesRule]{Context} Setting property 'debug' to '0' did not find a matching property.
Jun 09, 2013 11:04:09 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error filterStart
Jun 09, 2013 11:04:09 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/solr] startup failed due to previous errors

Ответы

Ответ 1

Вам нужно установить банки для ведения журнала, как описано здесь.

Просто скопируйте все указанные файлы в каталог tomcat/lib. И перезапустите Tomcat.

  • Скопируйте банки из solr/example/lib/ext в основной каталог контейнера. Эти банки установят SLF4J и log4j. Именно там, где этот каталог lib сильно изменен. Для Debian или Сервер Ubuntu с использованием пакета Tomcat, доступного от поставщика ОС, это, вероятно, будет /usr/share/tomcat6/lib или /usr/share/tomcat7/lib.
  • Скопируйте конфигурацию журнала из solr/example/resources/log4j.properties в место на classpath. Обычно вы можете использовать то же место, что и файлы jar выше. Отредактируйте файл конфигурации для предпочтительного места назначения журнала.
  • Необязательно, если вы не поместили log4j.properties в путь к классам, установите java option -Dlog4j.configuration=file:///path/to/log4j.properties

Ответ 2

  • Загрузите последний файл solr-4.x.zip.
  • Извлеките zip файл где-нибудь как C:\solr setup.
  • Необходимо установить Apache Tomcat (версия больше 5) и Java 6 или более. Скопируйте файл solr-4.x.war из "C:\solr setup\solr-4.3.0\dist" в папку "web-папка Apache Tomcat", скорее всего, в C:\Program Files\Apache...\Tomcat...\webapps\и переименовать скопированный файл войны в какое-то содержательное имя, например, solrTest.Start Tomcat. Если он уже запущен, перезапустите Tomcat. Будет создана новая папка с тем же именем, что и в военном файле (solrTest).
  • Остановить Tomcat. Скопируйте папку bin и collection1 из C:\solr setup\solr-4.x\example\solr в C:\Program Files\Apache...\Tomcat...\webapps\solrTest.
  • Скопируйте все банки из C:\solr setup\solr-4.x\example\lib\ext в C:\Program Files\Apache...\Tomcat...\lib. SOLR 4.x будет использовать эти банки для ведения журнала.
  • Создайте xml файл в C:\Program Files\Apache...\Tomcat...\conf\Catalina\localhost\с тем же именем, что и в военном файле (solrTest.xml), с содержимым, приведенным ниже. Tomcat ищет этот xml файл для запуска приложения.
  • Обновить C:\Program Files\Apache...\Tomcat...\webapps\solrTest\collection1\conf\schema.xml и добавить необходимые поля и обновить.
  • Удалите поля для копирования, если это не требуется. Использование полей копирования доступно в одном файле.
  • Обновление C:\Program Files\Apache...\Tomcat...\webapps\solrTest\collection1\conf\solrconfig.xml. Обновите путь физического индекса в теге, например ${solr.data.dir: C:/Indexes/solrTest Index/}. Если он будет прокомментирован, по умолчанию будет использоваться каталог C:\Program Files\Apache...\Tomcat...\webapps\solrTest\collection1\data \. Тег DataDir доступен в файле. Не нужно добавлять свои собственные.
  • Обновить записи репликации, чтобы установить мастер или подчиненный в обработчик запроса репликации.
  • Попробуйте получить доступ к "... localhost: portNumber/solrTest". Если ошибка не возникает, вы успешно настроили SOLR 4.x.

Ответ 3

Самый простой способ начать работу с Solr на Tomcat - использовать HDS (Heliosearch Distribution для Solr), Распределение Tomcat/Solr

Это супер-набор Apache Solr, содержащий дополнительный "серверный" каталог, который является предварительно сконфигурированным (потоки, протоколирование, настройки соединения, размеры сообщений и т.д.) сервер Solr на основе Tomcat.

Некоторые другие примечания к реализации:

  • скрипты запуска можно запускать из любого места и разрешать передачу аргументов JVM в командной строке (точно так же, как причал, поэтому это упрощает использование).
  • запуска скриптов работают вокруг известных ошибок JVM
  • стартовые скрипты позволяют устанавливать порт из командной строки и останавливать по умолчанию порт, основанный на http-порту, чтобы упростить запуск нескольких серверов на один ящик)
  • zkcli, начало script для инструмента для вызова заклинания solr, автоматически взорвет WAR при необходимости
  • каталог "server" хранится в чистоте, но набивает все tomcat в каталоге "server/tc"

Чтобы начать:

$ cd server
$ bin/startup.sh

Чтобы начать с другого порта (например, 7574):

$ cd server
$ bin/startup.sh -Dhttp.port=7574

Чтобы отключить:

$ cd server
$ bin/shutdown.sh -Dhttp.port=7574

Сценарии даже принимают -Djetty.port = 7574, чтобы упростить cut-n-paste из стартовых примеров, используя причал. Каталог "example" все еще там, поэтому вы все равно можете запустить сервер на причале, если вы хотите.

Ответ 4

Проверьте журналы localhost_yyyy_mm_dd.log, созданные Tomcat. Как правило, это указывает на причину этой проблемы. Полная трассировка стека может не отображаться в консоли...

Ответ 5

У меня возникла проблема с тем же, официальная документация на самом деле не очень полезна. Я написал сообщение в блоге об этом, которое гласит:

  • Solr install

    Загрузите и распакуйте последнюю версию Solr, где-то на диске.

    cd /tmp
    wget "http://mirrors.ircam.fr/pub/apache/lucene/solr/4.6.0/solr-4.6.0.tgz"
    cd /opt
    sudo tar zxvf /tmp/solr-4.6.0.tgz
    sudo chown -R tomcat:tomcat solr-4.6.0
    

    Здесь я использую /opt, но вы можете установить его в любом месте, пока Tomcat имеет к нему доступ. Чтобы быть уверенным, сделайте Tomcat владельцем, чтобы он мог читать и писать в папках Solr.

  • Развертывание

    Теперь, позвольте развернуть Solr webapp на Tomcat. Для этого мы воспользуемся конфигурационным файлом XML-контекста, который мы будем использовать для развертывания и настройки Solr.

    В папке установки Tomcat создайте новый файл конфигурации контекста XML в conf/Catalina/localhost. Базовое имя файла будет определять путь контекста Solr.

    Сначала нам нужно определить ${solr.home}. Здесь мы используем конфигурацию Solr, представленную в дистрибутиве. Он находится в /opt/solr -4.6.1/example/solr.

    Чтобы избежать ошибок при запуске, нам нужно добавить несколько баночек в путь класса webapp, расположенный в /opt/solr -4.6.1/example/lib/ext. Но мы не хотим загрязнять папку Tomcat lib с помощью банок Solr, поэтому мы просто объявляем виртуальный загрузчик.

    Нам также необходимо правильно настроить Log4J. Здесь мы используем конфигурационный файл Log4J, указанный в дистрибутиве Solr, в /opt/solr -4.6.1/example/resources, добавив папку в путь класса Solr.

    <?xml version="1.0" encoding="UTF-8"?>
    <Context docBase="/opt/solr-4.6.1/dist/solr-4.6.1.war">
      <Environment
        name="solr/home"
        type="java.lang.String"
        value="/opt/solr-4.6.1/example/solr"
        override="true" />
      <Loader
        className="org.apache.catalina.loader.VirtualWebappLoader"
        virtualClasspath="/opt/solr-4.6.1/example/lib/ext/*.jar;/opt/solr-4.6.1/example/resources/" />
    </Context>
    

    Сохраните файл, дождитесь, пока Tomcat прочитает его и разворачивает войну.

Что это! Solr запущен и работает.

Ответ 6

Вот инструкция, предоставленная Tony at Drupal для Windows с установленной XAMPP:

Отборочные

  • Сделай себе приятную чашку чая.
  • Убедитесь, что среда Windows Java установлена. Это до версии 6 на данный момент.
  • Предполагаю, что вы используете XAMPP для запуска Apache и MySQL и последней версии PHP5

Установка Tomcat

  • Если вы установили XAMPP с Tomcat, зайдите в свой сервисный лоток, остановите службы XAMPP и удалите каталог Tomcal из вашей установки XAMPP. Затем снова запустите свой XAMPP. Причина в том, что вы хотите иметь возможность легко настраивать Tomcat из Сервисного лотка в Windows. Если Tomcat работает под XAMPP, он не отображается в лотке служб.
  • Перед установкой Tomcat скопируйте файл c:\windows\microsoft.net\framework\v1.1.4322\msvcr71.dll в c:\windows\system32\msvcr71.dll Если вы этого не сделаете, Tomcat выиграл Не запускайте.
  • Теперь установите Tomcat 6.x. Запустите его. Вы должны получить страницу с http://localhost:8080, если Tomcat работает.
  • Загляните в файловую структуру Tomcat. Это очень просто. Обратите внимание на каталог с именем webapps.
  • Теперь приготовь чашку чая.

Если вы работаете в Linux, проверьте: Установка Apache Solr 4.6.0.