Установка Apache Solr на Ubuntu 16.04 LTS
Что такое Apache Solr?
Apache Solr — это поисковая платформа корпоративного класса с открытым исходным кодом, написанная на Java. Она позволяет создавать собственные поисковые движки, индексирующие базы данных, файлы и сайты. Solr использует в основе Apache Lucene и поддерживает рекомендации по найденному контенту, подсветку фрагментов (snippets) и XML‑ориентированный язык запросов/ответов. Для взаимодействия доступны API для Python, Ruby и JSON.
Ключевые возможности:
- Полнотекстовый поиск.
- Генерация сниппетов и подсветка совпадений.
- Настраиваемая сортировка/ранжирование документов.
- Подсказки орфографии (spell suggestions).
Важно: в этой инструкции показано развертывание Solr версии 6.x на Ubuntu 16.04 LTS — шаги обычно применимы и для более поздних версий Ubuntu и Solr, но интерфейс и пакеты могут отличаться.
Требования и подготовка
Необходимое ПО и доступы:
- Ubuntu 16.04 LTS (или совместимая версия).
- Учетная запись с правами sudo (не рекомендуется использовать root напрямую).
- Доступ в интернет для загрузки пакетов и дистрибутива Solr.
- Java Runtime Environment (JRE) 8.
Рекомендация: для production-развертываний добавьте резервные копии, мониторинг и правила брандмауэра, ограничивающие доступ к портам управления.
Обновление системы
Войдите на сервер под пользователем с sudo и выполните обновление пакетов:
sudo apt-get update && apt-get upgrade -y
Установка среды выполнения Java
Solr — Java-приложение, поэтому требуется JRE/JDK. В примере используем Oracle Java 8 через PPA. Для добавления репозитория установим python-software-properties (в старых Ubuntu это помогает работать с add-apt-repository):
root@server1:~# sudo apt-get install python-software-propertiesПри подтверждении нажмите Y.

Добавьте PPA webupd8team и обновите список пакетов:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
Установите Oracle Java 8:
sudo apt-get install oracle-java8-installerПри установке вам будет предложено принять лицензию Oracle — подтвердите её.

Процесс скачивания и установки может занять некоторое время.

Проверьте версию Java после установки:
java -versionПример вывода:
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)Теперь Java 8 установлена и можно переходить к установке Solr.
Установка Apache Solr
В этом руководстве мы скачиваем официальный дистрибутив Solr и устанавливаем его как системный сервис.
- Перейдите во временный каталог и скачайте архив Solr (в примере используется версия 6.0.1):
cd /tmp
wget http://www.us.apache.org/dist/lucene/solr/6.0.1/solr-6.0.1.tgzПример загрузки:
root@server1:/tmp# wget http://www.us.apache.org/dist/lucene/solr/6.0.1/solr-6.0.1.tgz
--2016-06-03 11:31:54-- http://www.us.apache.org/dist/lucene/solr/6.0.1/solr-6.0.1.tgz
Resolving www.us.apache.org (www.us.apache.org)... 140.211.11.105
Connecting to www.us.apache.org (www.us.apache.org)|140.211.11.105|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 137924507 (132M) [application/x-gzip]
Saving to: ‘solr-6.0.1.tgz’- Извлеките скрипт установки сервиса из архива и запустите его:
tar xzf solr-6.0.1.tgz solr-6.0.1/bin/install_solr_service.sh --strip-components=2
sudo ./install_solr_service.sh solr-6.0.1.tgzОжидаемый вывод установки (сокращён):
root@server1:/tmp# sudo ./install_solr_service.sh solr-6.0.1.tgz
id: ‘solr’: no such user
Creating new user: solr
Adding system user `solr' (UID 111) ...
Adding new group `solr' (GID 117) ...
Creating home directory `/var/solr' ...
Extracting solr-6.0.1.tgz to /opt
Installing symlink /opt/solr -> /opt/solr-6.0.1 ...
Installing /etc/init.d/solr script ...
Installing /etc/default/solr.in.sh ...
Started Solr server on port 8983 (pid=20989). Happy searching!
Service solr installed.Проверьте статус сервиса:
service solr statusПример ожидаемого вывода:
root@server1:/tmp# service solr status
? solr.service - LSB: Controls Apache Solr as a Service
Loaded: loaded (/etc/init.d/solr; bad; vendor preset: enabled)
Active: active (exited) since Fri 2016-06-03 11:37:05 CEST; 39s ago
Started LSB: Controls Apache Solr as a Service.Создание коллекции в Solr
Solr поддерживает несколько коллекций (cores). Создадим коллекцию с именем gettingstarted и конфигурацией data_driven_schema_configs:
sudo su - solr -c "/opt/solr/bin/solr create -c gettingstarted -n data_driven_schema_configs"Пример отклика:
root@server1:/tmp# sudo su - solr -c "/opt/solr/bin/solr create -c gettingstarted -n data_driven_schema_configs"
Copying configuration to new core instance directory:
/var/solr/data/gettingstarted
Creating new core 'gettingstarted' using command:
http://localhost:8983/solr/admin/cores?action=CREATE&name=gettingstarted&instanceDir=gettingstarted
{
"responseHeader":{
"status":0,
"QTime":4427},
"core":"gettingstarted"}Конфигурационные файлы коллекции находятся по пути:
/opt/solr/server/solr/configsets/data_driven_schema_configs/confВеб-интерфейс Solr
По умолчанию Solr доступен на порту 8983. Откройте браузер и перейдите по адресу:
http://:8983/solr/ Например:
http://192.168.1.100:8983/solr/
Выберите коллекцию gettingstarted в левом меню, чтобы увидеть её детали.

Чтобы добавить документ через UI, откройте раздел Documents и вставьте JSON-пример:
{
"id": 1,
"book_title": "My First Book",
"published": 1985,
"description": "All about Linux"
}Нажмите Submit Document. При успешной загрузке в ответе вы увидите статус success:
Status: success
Response:
{
"responseHeader": {
"status": 0,
"QTime": 189
}
}Выполните запрос на вкладке Query — по умолчанию запрос : вернёт все документы:
q=*:*&wt=jsonПример ответа:
{
"responseHeader":{
"status":0,
"QTime":24,
"params":{
"q":"*:*",
"indent":"on",
"wt":"json"}},
"response":{"numFound":1,"start":0,"docs":[
{
"id":"1",
"book_title":["My First Book"],
"published":[1985],
"description":["All about Linux"],
"_version_":1536108205792296960}]
}}
Готовый образ виртуальной машины
Этот урок доступен как готовый образ виртуальной машины (ovf/ova) для подписчиков Howtoforge. Форматы совместимы с VMWare и VirtualBox. Учётные данные по умолчанию:
SSH / Shell Login
Username: administrator Password: howtoforge
Этот пользователь имеет права sudo. Смените пароли после запуска виртуальной машины.
Критерии приёмки
- Solr запущен как системный сервис (service solr status => active).
- Веб-интерфейс доступен по http://
:8983/solr/ и открывается в браузере. - Создана коллекция gettingstarted и добавлен хотя бы один документ.
- Запрос q=: возвращает добавленный документ.
Шпаргалка — часто используемые команды
- Проверка статуса сервиса:
service solr status- Остановка и запуск сервиса:
sudo service solr stop
sudo service solr start
sudo service solr restart- Создание коллекции:
sudo su - solr -c "/opt/solr/bin/solr create -c <имя> -n <конфиг>"- Управление коллекциями через HTTP API:
http://localhost:8983/solr/admin/cores?action=STATUSЧек-листы для ролей
Администратор:
- Убедиться, что Java установлена и доступна.
- Установить Solr как сервис и настроить брандмауэр.
- Настроить бекап конфигурации /var/solr и /opt/solr.
Разработчик/интегратор:
- Проверить схему коллекции и соответствие полей.
- Подготовить парсер данных для импорта в JSON.
- Протестировать запросы и подсветку фрагментов.
Оператор/DevOps:
- Настроить мониторинг (метрики JVM, использование памяти, GC).
- Настроить логирование и ротацию логов.
- Планировать масштабирование и шардирование в будущем.
Когда это может не сработать
- Если на сервере уже установлена несовместимая версия Java (не 8), Solr версии 6 может некорректно работать.
- Если порт 8983 заблокирован брандмауэром или используем другим сервисом.
- При нехватке ресурсов JVM (памяти) возможны ошибки индексации или падение сервиса.
Решения: убедитесь в версии Java, откройте порт в UFW/iptables и оцените ресурсы — при необходимости увеличьте память/CPU или запустите Solr в кластере.
Альтернативные подходы
- Elasticsearch — альтернатива с совместимым стеком и крупным сообществом.
- Managed search services (например, облачные сервисы) — для уменьшения администрирования.
- Использовать контейнеры (Docker) для изоляции и упрощённого деплоя.
Руководство по откату и восстановлению (runbook)
- Если сервис нестабилен — остановите Solr:
sudo service solr stopВосстановите конфигурацию из бекапа (если есть): скопируйте каталог конфигов в /var/solr/data/
/conf и перезагрузите сервис. Проверка состояния после восстановления:
sudo service solr start
service solr status- Если требуется полное удаление и повторная установка — удалите /opt/solr и системного пользователя solr, затем запустите инсталлятор заново.
Безопасность и рекомендации
- В production ограничьте доступ к админ-интерфейсу Solr (настройте брандмауэр или обратный прокси с аутентификацией).
- Регулярно обновляйте Java и Solr до поддерживаемых безопасных версий.
- Настройте бекап индексов и конфигураций.
Короткая методология развёртывания (mini-checklist)
- Обновить систему и установить зависимости.
- Установить корректную версию Java.
- Скачать и установить Solr как сервис.
- Создать коллекции и загрузить тестовые данные.
- Настроить мониторинг, бекапы и безопасность.
Заключение
После установки и базовой проверки вы сможете добавлять документы и выполнять поиск при помощи API и веб-интерфейса Solr. Для production-развёртывания дополните инструкцию настройками мониторинга, бекапов, безопасности и масштабирования.
Примечание: адаптируйте шаги под вашу версию Ubuntu и Solr — в более новых релизах команды и пакеты могут незначительно отличаться.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента