Содержание

Денвер и Solr

Solr — движок полнотекстового поиска с открытым исходным кодом.

Пожалуй это один из самых популярных поисковых движков. Полнотекстовый поиск, подсветка результатов, фасетный поиск, динамическая кластеризация, интеграция с базами данных - некоторые из возможностей движка. Так же в Solr есть возможность распределенного поиска и репликации, а следовательно Solr хорошо масштабируем.

Давайте же взглянем на процесс установки:

  1. Установка Java.
  2. Установка Java Servlet Container (на примере Apache Tomcat).
  3. Установка Solr.
  4. Настройка Java Servlet Container для работы с Solr.
  5. Привязка запуска службы к Денвер.
  6. Дополнение страницы localhost.

Внимание! Работать мы будем с папкой в которую вы установили Денвер, а не с виртуальным диском, который создает Денвер. Для краткости обозначим путь к этой папке как [Денвер].

Установка Java

Так как Solr написан на Java, нам надо поставить Java :-).

Если вы не планируете вести разработку на Java, то достаточно будет установить дистрибутив Java Runtime Environment (JRE), который можно скачать с java.com или oracle.com. Если же вы разрабатывает приложения на Java, то скорее всего уже все установлено, иначе скачиваем и устанавливаем.

Установка Java Servlet Container

Далее нам необходимо установить контейнер сервлетов - сервер, который будет поддерживать работу Java приложений, в частности наш Solr. Я не могу сказать какой из контейнеров лучше, в чем плюсы того или иного контейнера - не моя эта задача, мне достаточно чтобы приложения работали. Я выбрал Apache Tomcat, так как об этом контейнере я слышал несколько раз, про остальные же я вообще слышал в первые. Но если вы захотите поставить какой-либо другой контейнер - то это ваше право :-).

И так дистрибутив Apache Tomcat можно найти на сайте tomcat.apache.org. Скачиваете Windows Service Installer последней версии (на момент написания 8). Запускаете и устанавливаете:

  1. В разделе Основные настройки (Tomcat basic configuration) в поле HTTP/1.1 Connector Port укажите 8983, или любой другой, но проверте, чтобы указанный порт не использовали другие сервера. В поле Windows Service Name укажите Tomcat.
  2. На следующем шаге необходимо будет указать папку, в которую вы установили JRE, на предыдущем этапе.
  3. Установка.

Контейнер сервлетов установиться как служба Windows (с указанным в именем). Собственно говоря именно эту службу мы будем запускать и останавливать при работе с Денвер. Путь до папки, в которую был установлен контейнер, обозначим как [Tomcat].

Установка Solr

И снова качаем дистрибутив. На этот раз сам 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):

  1. В закладке «General», в поле «Startup type» выбираем Manual - ручной запуск.
  2. В закладке «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 со следующим содержанием:

<html>
  <head>
    <title>Проверка Solr</title>
    <meta http-equiv=Refresh content="0; url=http://localhost:8983/solr">
    #<!--order=100-->
  </head>
</html>

В таблице ссылок на localhost появится новая строка. Ура.