Одним из популярных применений для 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. При желании установить какую-то определенную версию, пожалуйста ознакомьтесь с этой статьей, но если достаточно быстро установить готовую версию из репозитория, выполните следующие команды:
1 2 3 | 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
, выполните следующие команды:
1 | sudo apt-get -y install solr-tomcat |
Теперь рабочий экземпляр Solr должен быть доступен по адресу http://YOUR_IP:8080/solr
. Пропустите следующую часть статьи с описанием ручной установки если хотите перейти непосредственно к настройке Solr сервера.
Установка Solr вручную
Чтобы установить Solr вручную прийдется уделить чуть больше времени. Сначала мы должны установить Java JDK. Если хотите установить какую-то конкретную версию, пожалуйста прочтите эту статью. В этой части статьи мы будем использовать Jetty вместо Tomcat. Если хотите установить версию доступную из репозитория, просто запустите следующую команду:
1 | sudo apt-get -y install openjdk-7-jdk |
Теперь займемся непосредственно установкой Solr. Для начала, нужно скачать и распаковать все необходимые для работы файлы:
1 2 3 4 5 6 | 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
) и вставьте в него следующий код:
1 2 3 4 5 6 | 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
) и вставьте в него следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <?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 и обеспечим ему необходимые права доступа:
1 2 | sudo useradd -d /opt/solr -s /sbin/false solr sudo chown solr:solr -R /opt/solr |
После этого, скачаем запускающий скрипт и сделаем чтобы он стартовал автоматически при загрузке системы:
1 2 3 | 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:
1 | 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
):
1 2 3 | cd /opt/solr/solr mv collection1 apples cd apples |
Также, если вы использовали установку Solr в ручном режиме, откройте файл core.properties
(nano core.properties
) и замените имена на аналогичные.
Затем, удалите директорию data
и измените schema.xml:
1 2 | rm -R data nano conf /schema .xml |
Вставьте сюда ваши данные schema.xml. Посмотрите вариант очень продвинутого варианта конфигурации schema.xml из репозитория Solr. Можете поискать в сети другие варианты настроек, но я думаю если углубиться в понимание этого конфига, то можно настроиться под любые собственные нужды. Перезагрузите Jetty/Tomcat:
Доя простого варианта установки:
1 | sudo service tomcat6 restart |
Для продвинутого варианта установки:
1 | sudo /etc/init .d /jetty restart |
Теперь если зайти браузером в панель администрирования настроенного экземпляра Solr, Вы должны увидеть панель с различными инструментами управления.
В заключение
Теперь на Вашем VPS успешно установлен поисковый сервер Solr, который можно начинать использовать его для индексирования материалов нового сайта! Если нужна тонкая настройка schema.xml, предлагаем изучить документацию в сети. Затем понадобится найти библиотеку для Вашего любимого языка программирования, которая обеспечит совместную работу с сервером Solr - для PHP рекомендуем воспользоваться Solarium.
Оригинальная статья: How To Install Solr on Ubuntu 14.04
Перевод: Игорь Пастух
Добавить комментарий