Apache Solr - платформа полнотекстового поиска с открытым исходным кодом. Основные возможности: полнотекстовый поиск, подсветка результатов, фасетный поиск, динамическая кластеризация, интеграция с базами данных, обработка документов со сложным форматом (например, Word, PDF). Solr является самым популярным поисковым движком. Solr написан на Java и запускается как отдельное веб-приложение полнотекстового поиска внутри какого-либо контейнера сервлетов, например Apache Tomcat или Jetty. Подробней...
В репозиториях kubuntu 14.10 идет версия Solr 3.x В статье же пойдет речь о установке в "ручном" режиме более свежей версии Solr 4.х
В этой статье, мы ориентируемся на установку Apache Solr со следующими параметрами:
sudo aptitude install default-jre-headless
На момент написания статьи последняя версия Solr была 4.10.4 от 3 марта 15 года. Другие версии можно найти по этой ссылке. Размер архива около 150 Мб.
В переменной VERSION можно указать актуальную версию solr В переменной INSTALL_DIR каталог для установки
Скрипт можно просто скопировать и вставить в консоль. А можно просто в ручном режиме выполнят последовательно команды из него.
sudo -sVERSION=4.10.4INSTALL_DIR=/opt/solr4cd /tmp# Загружаем Solr с сервераwget http://apache.osuosl.org/lucene/solr/$VERSION/solr-$VERSION.tgz# Распаковываем tar -xzf solr-$VERSION.tgz# Перемещаем необходимые для работы файлы Solr из /tmp/solr-$VERSION/example в каталог $INSTALL_DIR в котором у нас и будет установлен solr.# Каталог /opt предполагает установку программного обеспечения не из репозиториев kubuntu, потому установка будет произведена в негоmv /tmp/solr-$VERSION/example $INSTALL_DIR# Создаем пользователя solr с "домашним" каталогом $INSTALL_DIRuseradd -d $INSTALL_DIR -M -s /dev/null -U solr# Меняем владельца каталога $INSTALL_DIR на пользователя solrchown -R solr:solr $INSTALL_DIR# По умолчанию логи solr находятся в $INSTALL_DIR/logs для переноса в более привычное расположение /var/log/solr # Создаем каталог для логов в <b>/var/log/solr</b> mkdir /var/log/solr# Что бы solr мог писать туда логи даем ему доступ к этому каталогуchown -R solr:solr /var/log/solr# Меняем в $INSTALL_DIR/resources/log4j.properties путь до лог файла.# Меняем строку solr.log=logs/ на solr.log=/var/log/solr/ sed -i 's/solr.log=logs\//solr.log=\/var\/log\/solr\//' $INSTALL_DIR/resources/log4j.properties# Скачиваем скрипт автозапуска solrwget http://kubuntu.ru/files/solr_init.d.sh# Перемещаем его в /etc/init.d/solrmv solr_init.d.sh /etc/init.d/solr# В скрипте /etc/init.d/solr Меняем значение переменной SOLR_HOME в соответствие с переменной INSTALL_DIRsed -i s,SOLR_HOME=.*,SOLR_HOME=${INSTALL_DIR}, /etc/init.d/solr# Даем права на запускchmod 755 /etc/init.d/solr# Добавляем в автозагрузкуupdate-rc.d solr defaultsunset VERSIONunset INSTALL_DIRexit
Запуск производится стандартной командой
sudo service solr start
Проверить работоспособность можно пройдя по ссылке:
http://127.0.0.1:8983/solr/
Посмотреть лог
sudo tail /var/log/solr/solr.log
После установки solr никак не защищен и любой может получить к нему доступ пройдя по адресу http://x.x.x.x/:8983/solr/ и поменять его настройки. Потому мы ограничим доступ установив пароль.
Для этого добавляем в файл /opt/solr4/etc/jetty.xml запись:
<!-- ======= Securing Solr ===== --><Call name="addBean"> <Arg> <New class="org.eclipse.jetty.security.HashLoginService"> <Set name="name">Solr</Set> <Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set> <Set name="refreshInterval">0</Set> </New> </Arg></Call>
Так же добавляем в файл /opt/solr4/etc/webdefault.xml секцию:
<security-constraint> <web-resource-collection> <web-resource-name>Solr</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>search-role</role-name> </auth-constraint></security-constraint><login-config> <auth-method>BASIC</auth-method> <realm-name>Solr</realm-name></login-config>
Создаем файл /opt/solr4/etc/realm.properties в котором указываем логин, пароль и роль для доступа
user_name: password, search-role
Обратите внимание, что "search-role" должно соответствовать роли добавленной в webdefault.xml search-role
В заключении ограничиваем права доступа к файлу /opt/solr4/etc/realm.properties
sudo chmod 640 /opt/solr4/etc/realm.properties && sudo chown solr:solr /opt/solr4/etc/realm.properties
По умолчанию ядро solr имеет название collection 1. Для переименования его во что-то более информативное нужно переименовать каталог /opt/solr4/solr/collection1 на пример в drupal
sudo mv /opt/solr4/solr/collection1 /opt/solr4/solr/drupal
И в файле /opt/solr4/solr/drupal/core.properties указать
name=drupal
sudo -s/etc/init.d/solr stopupdate-rc.d solr disableupdate-rc.d solr removerm /etc/init.d/solruserdel solrrm -rf /opt/solr4rm -rf /var/log/solraptitude purge default-jre-headless
По мотивам: http://2bits.com
Подробнее о форматировании
Отправить комментарий