====== Денвер и 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 появится новая строка. Ура.