Как запустить 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.