Solr — движок полнотекстового поиска с открытым исходным кодом.
Пожалуй это один из самых популярных поисковых движков. Полнотекстовый поиск, подсветка результатов, фасетный поиск, динамическая кластеризация, интеграция с базами данных - некоторые из возможностей движка. Так же в Solr есть возможность распределенного поиска и репликации, а следовательно Solr хорошо масштабируем.
Давайте же взглянем на процесс установки:
Внимание! Работать мы будем с папкой в которую вы установили Денвер, а не с виртуальным диском, который создает Денвер. Для краткости обозначим путь к этой папке как [Денвер].
Так как Solr написан на Java, нам надо поставить Java .
Если вы не планируете вести разработку на Java, то достаточно будет установить дистрибутив Java Runtime Environment (JRE), который можно скачать с java.com или oracle.com. Если же вы разрабатывает приложения на Java, то скорее всего уже все установлено, иначе скачиваем и устанавливаем.
Далее нам необходимо установить контейнер сервлетов - сервер, который будет поддерживать работу Java приложений, в частности наш Solr. Я не могу сказать какой из контейнеров лучше, в чем плюсы того или иного контейнера - не моя эта задача, мне достаточно чтобы приложения работали. Я выбрал Apache Tomcat, так как об этом контейнере я слышал несколько раз, про остальные же я вообще слышал в первые. Но если вы захотите поставить какой-либо другой контейнер - то это ваше право .
И так дистрибутив Apache Tomcat можно найти на сайте tomcat.apache.org. Скачиваете Windows Service Installer последней версии (на момент написания 8). Запускаете и устанавливаете:
Контейнер сервлетов установиться как служба Windows (с указанным в именем). Собственно говоря именно эту службу мы будем запускать и останавливать при работе с Денвер. Путь до папки, в которую был установлен контейнер, обозначим как [Tomcat].
И снова качаем дистрибутив. На этот раз сам Solr, найти который можно на lucene.apache.org. Скачайте и распакуйте архив с Solr в любую папку (позже мы ее удалим), обозначим путь к ней как [Solr].
Скопируйте содержимое папки [Solr]\example\solr в [Денвер]\usr\local\solr. На этом установка завершена, но еще нужно настроить контейнер на работу с 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):
-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 для вызова инструментов, то будет разумно добавить в таблицу ссылок в разделе «Тестирование Денвера» ссылку на 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 появится новая строка. Ура.