Одним из популярных применений для VPS сервера является организация внешнего индексирования для создания "живого поиска" на сайте, что является очень популярной фишкой современных интернет-магазинов.
Введение
Solr является поисковым движком основанным на Apache Lucene. Он написан на Java и использует библиотеку Lucene для реализации индексирования. Он может быть доступен с использование различных вариантов REST API (например, XML и JSON). Вот список возможностей с официального сайта:
- Расширенный полнотекстовый поиск
- Оптимизация для большого трафика
- Стандарты на основе открытых интерфейсов: XML, JSON и HTTP
- Комплексный HTML интерфейс для администрирования
- Статистика сервера представлена через JMX для мониторинга
- Линейная масштабируемость, автоматическая репликация, автоматическое переключение и восстановление
- Индексация данных близкая к реальному времени
- Гибкая и адаптируемая XML конфигурация
- Расширяемая архитектура плагинов
В этой статье мы покажем вам как установить Solr двумя различными способами на сервер работающий на базе операционной системы Ubuntu Linux. Сначала рассмотрим самый простой способ, а затем более продвинутый вариант установки. Я бы рекомендовал пользоваться вторым способом, т.к. с его помощью можно установить более свежую версию Solr на все версии Ubuntu, даже на 14.04 - последнюю версию на момент написания.
Установка Solr при помощи apt-get (легкий путь)
Если хотите установить Solr легко и быстро используйте эту часть статьи. Solr не работает в одиночку; ему нужен Java контейнер сервлетов, такой как Tomcat или Jetty. В этой статье, мы будем использовать Jetty для продвинутого варианта установки, а для более простого - Tomcat. Для начала нам нужно установить Java JDK. При желании установить какую-то определенную версию, пожалуйста ознакомьтесь с этой статьей, но если достаточно быстро установить готовую версию из репозитория, выполните следующие команды:
sudo apt-get -y install openjdk-7-jdk mkdir /usr/java ln -s /usr/lib/jvm/java-7-openjdk-amd64 /usr/java/default
Ubuntu по-умолчанию предлагает 3 Solr пакета: solr-common
- пакет который фактически содержит код Solr; solr-tomcat
- интеграция Solr и Tomcat; и solr-jetty
, который то же что и solr-tomcat
, но для веб-сервера Jetty. Для установки solr-tomcat
, выполните следующие команды:
sudo apt-get -y install solr-tomcat
Теперь рабочий экземпляр Solr должен быть доступен по адресу http://YOUR_IP:8080/solr
. Пропустите следующую часть статьи с описанием ручной установки если хотите перейти непосредственно к настройке Solr сервера.
Установка Solr вручную
Чтобы установить Solr вручную прийдется уделить чуть больше времени. Сначала мы должны установить Java JDK. Если хотите установить какую-то конкретную версию, пожалуйста прочтите эту статью. В этой части статьи мы будем использовать Jetty вместо Tomcat. Если хотите установить версию доступную из репозитория, просто запустите следующую команду:
sudo apt-get -y install openjdk-7-jdk
Теперь займемся непосредственно установкой Solr. Для начала, нужно скачать и распаковать все необходимые для работы файлы:
cd /opt wget http://archive.apache.org/dist/lucene/solr/4.7.2/solr-4.7.2.tgz tar -xvf solr-4.7.2.tgz cp -R solr-4.7.2/example /opt/solr cd /opt/solr java -jar start.jar
Зайдите по адресу http://YOUR_IP:8983/solr
, чтобы убедиться, что все работает нормально. После проверки возвращайтесь в свою SSH консоль и закройте приложение при помощи комбинации клавиш Ctrl+C. Затем откройте файл /etc/default/jetty
(nano /etc/default/jetty
) и вставьте в него следующий код:
NO_START=0 # Start on boot JAVA_OPTIONS="-Dsolr.solr.home=/opt/solr/solr $JAVA_OPTIONS" JAVA_HOME=/usr/java/default JETTY_HOME=/opt/solr JETTY_USER=solr JETTY_LOGS=/opt/solr/logs
Сохраните, а затем откройте файл /opt/solr/etc/jetty-logging.xml
(nano /opt/solr/etc/jetty-logging.xml
) и вставьте в него следующий код:
<?xml version="1.0"?> <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd"> <!-- =============================================================== --> <!-- Configure stderr and stdout to a Jetty rollover log file --> <!-- this configuration file should be used in combination with --> <!-- other configuration files. e.g. --> <!-- java -jar start.jar etc/jetty-logging.xml etc/jetty.xml --> <!-- =============================================================== --> <Configure id="Server" class="org.mortbay.jetty.Server"> <New id="ServerLog" class="java.io.PrintStream"> <Arg> <New class="org.mortbay.util.RolloverFileOutputStream"> <Arg><SystemProperty name="jetty.logs" default="."/>/yyyy_mm_dd.stderrout.log</Arg> <Arg type="boolean">false</Arg> <Arg type="int">90</Arg> <Arg><Call class="java.util.TimeZone" name="getTimeZone"><Arg>GMT</Arg></Call></Arg> <Get id="ServerLogName" name="datedFilename"/> </New> </Arg> </New> <Call class="org.mortbay.log.Log" name="info"><Arg>Redirecting stderr/stdout to <Ref id="ServerLogName"/></Arg></Call> <Call class="java.lang.System" name="setErr"><Arg><Ref id="ServerLog"/></Arg></Call> <Call class="java.lang.System" name="setOut"><Arg><Ref id="ServerLog"/></Arg></Call></Configure>
Затем, создадим пользователя Solr и обеспечим ему необходимые права доступа:
sudo useradd -d /opt/solr -s /sbin/false solr sudo chown solr:solr -R /opt/solr
После этого, скачаем запускающий скрипт и сделаем чтобы он стартовал автоматически при загрузке системы:
sudo wget -O /etc/init.d/jetty http://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk/jetty-distribution/src/main/resources/bin/jetty.sh sudo chmod a+x /etc/init.d/jetty sudo update-rc.d jetty defaults
Запустим Jetty/Solr:
sudo /etc/init.d/jetty start
Так же как раньше доступ к нашему поисковому серверу можно получить по адресу http://YOUR_IP:8983/solr
.
Настройка schema.xml для Solr
Сначала, переименуйте /opt/solr/solr/collection1
на какое-нибудь понятное название, например "apples". (Этот шаг можно пропустить если при установке использовался apt-get
. В этом случае используйте следующую команду: cd /usr/share/solr
):
cd /opt/solr/solr mv collection1 apples cd apples
Также, если вы использовали установку Solr в ручном режиме, откройте файл core.properties
(nano core.properties
) и замените имена на аналогичные.
Затем, удалите директорию data
и измените schema.xml:
rm -R data nano conf/schema.xml
Вставьте сюда ваши данные schema.xml. Посмотрите вариант очень продвинутого варианта конфигурации schema.xml из репозитория Solr. Можете поискать в сети другие варианты настроек, но я думаю если углубиться в понимание этого конфига, то можно настроиться под любые собственные нужды. Перезагрузите Jetty/Tomcat:
Доя простого варианта установки:
sudo service tomcat6 restart
Для продвинутого варианта установки:
sudo /etc/init.d/jetty restart
Теперь если зайти браузером в панель администрирования настроенного экземпляра Solr, Вы должны увидеть панель с различными инструментами управления.
В заключение
Теперь на Вашем VPS успешно установлен поисковый сервер Solr, который можно начинать использовать его для индексирования материалов нового сайта! Если нужна тонкая настройка schema.xml, предлагаем изучить документацию в сети. Затем понадобится найти библиотеку для Вашего любимого языка программирования, которая обеспечит совместную работу с сервером Solr - для PHP рекомендуем воспользоваться Solarium.
Оригинальная статья: How To Install Solr on Ubuntu 14.04
Перевод: Игорь Пастух
Add new comment