====== Денвер и Solr ======
[[wp>Solr|Solr]] — движок полнотекстового поиска с открытым исходным кодом.
Пожалуй это один из самых популярных поисковых движков. Полнотекстовый поиск, подсветка результатов, фасетный поиск, динамическая кластеризация, интеграция с базами данных - некоторые из возможностей движка. Так же в Solr есть возможность распределенного поиска и репликации, а следовательно Solr хорошо масштабируем.
Давайте же взглянем на процесс установки:
- Установка Java.
- Установка Java Servlet Container (на примере Apache Tomcat).
- Установка Solr.
- Настройка Java Servlet Container для работы с Solr.
- Привязка запуска службы к Денвер.
- Дополнение страницы localhost.
Внимание! Работать мы будем с папкой в которую вы установили Денвер, а не с виртуальным диском, который создает Денвер. Для краткости обозначим путь к этой папке как [Денвер].
===== Установка Java =====
Так как Solr написан на Java, нам надо поставить Java :-).
Если вы не планируете вести разработку на Java, то достаточно будет установить дистрибутив Java Runtime Environment (JRE), который можно скачать с [[http://java.com/en/download/windows_xpi.jsp|java.com]] или [[http://www.oracle.com/technetwork/java/javase/downloads/index.html|oracle.com]]. Если же вы разрабатывает приложения на Java, то скорее всего уже все установлено, иначе скачиваем и устанавливаем.
===== Установка Java Servlet Container =====
Далее нам необходимо установить контейнер сервлетов - сервер, который будет поддерживать работу Java приложений, в частности наш Solr. Я не могу сказать какой из контейнеров лучше, в чем плюсы того или иного контейнера - не моя эта задача, мне достаточно чтобы приложения работали. Я выбрал Apache Tomcat, так как об этом контейнере я слышал несколько раз, про остальные же я вообще слышал в первые. Но если вы захотите поставить какой-либо другой контейнер - то это ваше право :-).
И так дистрибутив Apache Tomcat можно найти на сайте [[http://tomcat.apache.org|tomcat.apache.org]]. Скачиваете Windows Service Installer последней версии (на момент написания 8). Запускаете и устанавливаете:
- В разделе Основные настройки (Tomcat basic configuration) в поле HTTP/1.1 Connector Port укажите 8983, или любой другой, но проверте, чтобы указанный порт не использовали другие сервера. В поле Windows Service Name укажите Tomcat.
- На следующем шаге необходимо будет указать папку, в которую вы установили JRE, на предыдущем этапе.
- Установка.
Контейнер сервлетов установиться как служба Windows (с указанным в именем). Собственно говоря именно эту службу мы будем запускать и останавливать при работе с Денвер. Путь до папки, в которую был установлен контейнер, обозначим как [Tomcat].
===== Установка Solr =====
И снова качаем дистрибутив. На этот раз сам Solr, найти который можно на [[http://lucene.apache.org/solr/|lucene.apache.org]]. Скачайте и распакуйте архив с Solr в любую папку (позже мы ее удалим), обозначим путь к ней как [Solr].
Скопируйте содержимое папки [Solr]\example\solr в [Денвер]\usr\local\solr. На этом установка завершена, но еще нужно настроить контейнер на работу с Solr.
===== Настройка Java Servlet Container для работы с Solr =====
В папке [Solr]\dist есть файл solr-x.y.z.war (где x.y.z - версия Solr), его нужно переименовать в solr.war и скопировать в папку [Tomcat]\webapps.
Копируем все файлы из [Solr]\example\lib\ext в [Tomcat]\lib.
Копируем [Solr]\example\resources\log4j.properties в [Tomcat]\conf.
Далее заходим в конфигуратор Tomcat (Пуск -> Программы -> Apache Tomcat -> Configure Tomcat):
- В закладке "General", в поле "Startup type" выбираем Manual - ручной запуск.
- В закладке "Java", в список "Java Options" в конец дописываем ''-Dsolr.solr.home=[Денвер]\usr\local\solr''.
Собственно, на этом установка завершена и можно уже пользоваться движком. Папку [Solr] можно удалить, но я рекомендую изучить примеры - они помогут быстрее освоиться в работе с Solr.
Теперь Tomcat доступен по адресу ''localhost:8983/''.
Solr доступен по адресу ''localhost:8983/solr/''.
===== Привязка запуска службы к Денвер =====
Открываем папку [Денвер]/denwer/scripts/init.d/ и создаем файл tomcat.pl, в который вносим следующий текст:
#!perl -w
package Starters::Tomcat;
BEGIN { unshift @INC, "../lib"; }
use StartManager;
StartManager::action
$ARGV[0],
PATH => [
],
start => sub {
###
### START.
###
system('net start tomcat');
},
stop => sub {
###
### STOP.
###
system('net stop tomcat');
}
;
return 1 if caller;
Учтите если вы назвали сервис как-то иначе то в директиве system() нужно указать именно то имя, которое вы указали.
Далее идем в папку [Денвер]/denwer/scripts/main/start. Должно быть вы уже знаете, что порядок следования файлов - это порядок запуска служб. Поэтому выбираем любой порядковый номер и создаем файл <номер>_tomcat (к примеру, 29_tomcat) со следующим содержанием:
init.d/tomcat
Теперь копируем этот файл в папки [Денвер]/denwer/scripts/main/stop и [Денвер]/denwer/scripts/main/restart.
Проверяем запуск, рестарт и остановку Денвера.
===== Дополнение страницы localhost =====
Если вы используете главную страницу localhost для вызова инструментов, то будет разумно добавить в таблицу ссылок в разделе "Тестирование Денвера" ссылку на Solr.
В [Денвер]/home/localhost/www/Tests и создаем папку solr, в которой создаем файл index.html со следующим содержанием:
Проверка Solr
#
В таблице ссылок на localhost появится новая строка. Ура.