Одним из популярных применений для 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

Image CAPTCHA
Enter the characters shown in the image.