Установка Apache Solr на Ubuntu — пошаговое руководство
Что такое Apache Solr
Apache Solr — это open source поисковая платформа корпоративного уровня, написанная на Java. Solr использует Apache Lucene в качестве движка индексации. С её помощью можно строить пользовательские поисковые движки, индексировать базы данных, файлы и сайты, возвращать подсказки, фрагменты (snippets) и подсвечивать совпадения. Solr поддерживает XML‑запросы и форматы вывода, а также предоставляет API для Python, Ruby и JSON.
Ключевые возможности:
- Полнотекстовый поиск.
- Генерация фрагментов и подсветка терминов.
- Настраиваемая ранжировка документов.
- Предложения по исправлению орфографии.
Важно: Solr — это серверное Java‑приложение. Для работы требуется установленная JRE/JDK.
Перед началом
- Рекомендуется выполнять команды под НЕ‑root пользователем с правами sudo.
- Примеры в этой инструкции ориентированы на Ubuntu 14.04, но большинство шагов работают и на более новых версиях Ubuntu.
- Порт по умолчанию: 8983 — откройте его в файерволе, если требуется внешний доступ.
Обновление системы
Обновите пакеты и примените исправления:
sudo apt-get update && apt-get upgrade -y
Установка сред выполнения Java
Solr — Java‑приложение, поэтому сначала нужно установить Java. В примере устанавливается Oracle Java 8 через PPA webupd8team.
Установите вспомогательный пакет для добавления PPA:
sudo apt-get install python-software-propertiesПример вывода установки пакета:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
python-pycurl
Suggested packages:
libcurl4-gnutls-dev python-pycurl-dbg
The following NEW packages will be installed:
python-pycurl python-software-properties
0 upgraded, 2 newly installed, 0 to remove and 7 not upgraded.
Need to get 67.5 kB of archives.
After this operation, 358 kB of additional disk space will be used.
Do you want to continue? [Y/n]Нажмите Y, чтобы продолжить.

Добавьте репозиторий webupd8team для Oracle Java:
sudo add-apt-repository ppa:webupd8team/javaНажмите Enter, когда будет предложено. Затем обновите списки пакетов:
sudo apt-get update
Установите Oracle Java 8:
sudo apt-get install oracle-java8-installerВ процессе установки потребуется принять лицензионное соглашение Oracle.

После установки проверьте версию Java:
java -versionПример вывода:
java version "1.8.0_72"
Java(TM) SE Runtime Environment (build 1.8.0_72-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.72-b15, mixed mode)Если вывод показывает версию 1.8.x — можно переходить к установке Solr.
Примечание: в производстве рекомендуют использовать OpenJDK (openjdk-8-jdk) из репозиториев Ubuntu, если лицензионные требования Oracle вам не подходят.
Установка Apache Solr
В этом руководстве мы скачиваем дистрибутив Solr и ставим его как системную службу.
Перейдите в временную директорию и скачайте нужную версию. В примере использована версия 5.5.0. На момент чтения инструкции проверьте актуальную версию на официальном сайте Apache Solr и замените ссылку при необходимости.
cd /tmp
wget http://www.us.apache.org/dist/lucene/solr/5.5.0/solr-5.5.0.tgzПример вывода wget:
wget http://www.us.apache.org/dist/lucene/solr/5.5.0/solr-5.5.0.tgz
--2016-02-26 22:21:37-- http://www.us.apache.org/dist/lucene/solr/5.5.0/solr-5.5.0.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: 136758069 (130M) [application/x-gzip]
Saving to: ‘solr-5.5.0.tgz’Извлеките скрипт установки служб из архива:
tar xzf solr-5.5.0.tgz solr-5.5.0/bin/install_solr_service.sh --strip-components=2Запустите установку как sudo:
sudo ./install_solr_service.sh solr-5.5.0.tgzПримерная последовательность вывода установки:
sudo ./install_solr_service.sh solr-5.5.0.tgz
id: solr: no such user
Creating new user: solr
Adding system user `solr' (UID 114) ...
Adding new group `solr' (GID 123) ...
Adding new user `solr' (UID 114) with group `solr' ...
Creating home directory `/var/solr' ...
Extracting solr-5.5.0.tgz to /opt
Installing symlink /opt/solr -> /opt/solr-5.5.0 ...
Installing /etc/init.d/solr script ...
Installing /etc/default/solr.in.sh ...
Adding system startup for /etc/init.d/solr ...
/etc/rc0.d/K20solr -> ../init.d/solr
/etc/rc1.d/K20solr -> ../init.d/solr
/etc/rc6.d/K20solr -> ../init.d/solr
/etc/rc2.d/S20solr -> ../init.d/solr
/etc/rc3.d/S20solr -> ../init.d/solr
/etc/rc4.d/S20solr -> ../init.d/solr
/etc/rc5.d/S20solr -> ../init.d/solr
Waiting up to 30 seconds to see Solr running on port 8983 [-]
Started Solr server on port 8983 (pid=3288). Happy searching!
Found 1 Solr nodes:
Solr process 3288 running on port 8983
{
"solr_home":"/var/solr/data",
"version":"5.5.0 2a228b3920a07f930f7afb6a42d0d20e184a943c - mike - 2016-02-16 15:22:52",
"startTime":"2016-02-26T17:02:13.127Z",
"uptime":"0 days, 0 hours, 0 minutes, 17 seconds",
"memory":"58.6 MB (%11.9) of 490.7 MB"}
Service solr installed.Проверьте статус службы:
service solr statusОжидаемый вывод начинается с информации о нодах и процессе Solr:
Found 1 Solr nodes:
Solr process 3288 running on port 8983
{
"solr_home":"/var/solr/data",
"version":"5.5.0 2a228b3920a07f930f7afb6a42d0d20e184a943c - mike - 2016-02-16 15:22:52",
"startTime":"2016-02-26T17:02:13.127Z",
"uptime":"0 days, 0 hours, 1 minutes, 32 seconds",
"memory":"61.4 MB (%12.5) of 490.7 MB"}Важно: Права доступа к директориям /var/solr и /opt/solr должны принадлежать пользователю solr. Если служба не стартует — проверьте логи в /var/solr и системный journal.
Создание коллекции (core)
Solr поддерживает несколько коллекций (cores). Создадим первую коллекцию с именем gettingstarted и базовой конфигурацией data_driven_schema_configs:
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":5268},
"core":"gettingstarted"}Директория конфигурации по умолчанию находится здесь:
/opt/solr/server/solr/configsets/data_driven_schema_configs/conf
Отредактируйте schema.xml или managed-schema при необходимости, чтобы задать поля и их типы.
Использование веб-интерфейса Solr
Откройте в браузере панель управления Solr по адресу http://your_server_ip:8983/solr/. Если вы запускаете локально, пример:
http://192.168.1.105:8983/solr/
Выберите коллекцию gettingstarted в левом меню, чтобы увидеть её состояние и конфигурацию.

Добавление документов вручную
Перейдите в раздел Documents, вставьте JSON и нажмите Submit Document. Пример JSON‑документа:
{
"id": 1,
"book_title": "My First Book",
"published": 1985,
"description": "All about Linux"
}
Ожидаемый ответ:
Status: success
Response:
{
"responseHeader": {
"status": 0,
"QTime": 606
}
}Выполнение запроса
Перейдите в раздел Query и нажмите Execute Query. Введите q=: чтобы получить все документы.

Пример результата:
Query Output
{
"responseHeader": {
"status": 0,
"QTime": 66,
"params": {
"q": "*:*",
"indent": "true",
"wt": "json",
"_": "1456507717668"
}
},
"response": {
"numFound": 1,
"start": 0,
"docs": [
{
"id": "1",
"book_title": [
"My First Book"
],
"published": [
1985
],
"description": [
"All about Linux"
],
"_version_": 1527258892658016300
}
]
}
}Отладка и проверка
- Проверьте логи Solr: /var/solr/logs или /opt/solr/server/logs.
- Убедитесь, что порт 8983 открыт и прослушивается:
netstat -tlnp | grep 8983. - Если служба не стартует — проверьте переменные окружения в /etc/default/solr.in.sh.
Быстрый чек‑лист для проверки
- Java установлена и java -version возвращает 1.8.x или совместимую версию.
- Процесс Solr запущен: service solr status.
- Директории /var/solr и /opt/solr доступны и принадлежат solr.
- Веб‑интерфейс возвращает страницу админки.
Когда Solr может не подойти
- Если вам нужен распределённый поиск в больших кластерах с автоматическим распределением реплик, рассмотрите SolrCloud (Solr поддерживает это, но требует дополнительной настройки). Для простых встроенных сценариев может быть более подходящ Elasticsearch.
- Для тесной интеграции с экосистемой JSON/REST и широким набором клиентских библиотек Elasticsearch может быть удобнее.
Альтернативы
- Elasticsearch — похожий по функциональности поисковый движок с сильной экосистемой.
- Sphinx — лёгкий полнотекстовый поисковый движок, проще в развёртывании для некоторых сценариев.
Чек‑листы по ролям
Администратор:
- Установить JRE/JDK.
- Настроить системную службу Solr.
- Обеспечить резервное копирование /var/solr.
Разработчик:
- Определить схему полей (managed-schema).
- Подготовить индексаторы и ETL для загрузки данных.
DevOps:
- Настроить мониторинг (CPU, память, GC, latency).
- Автоматизировать деплой конфигураций (Ansible / Puppet).
Методика развёртывания в продакшн (мини‑SOP)
- Выберите стабильную версию Solr и Java (рекомендуется LTS).
- Тестируйте сборку на staging с теми же конфигурациями JVM и heap.
- Настройте SolrCloud при необходимости высокой доступности.
- Настройте мониторинг и алерты по SLI/SLO (время отклика / процент ошибок).
- Регулярно делайте бэкапы индексов.
Критерии приёмки
- Сервис Solr запущен и отвечает на запросы на порту 8983.
- Коллекция создана и возвращает ожидаемые документы при q=:.
- Индексация тестовых документов проходит без ошибок.
- Логи не содержат критических ошибок при старте.
Быстрый набор полезных команд
- Перезапустить Solr:
service solr restart - Проверить статус:
service solr status - Просмотреть логи:
tail -n 200 /var/solr/logs/solr.log(или путь логов в вашей версии) - Создать коллекцию:
/opt/solr/bin/solr create -c <имя> -n
Риски и рекомендации по безопасности
- По умолчанию интерфейс администрирования не защищён. Закройте доступ по IP или настройте прокси с аутентификацией.
- Ограничьте доступ к файловой системе (права на /var/solr).
- При развёртывании в продакшн используйте TLS для клиентских запросов и внутреннего трафика.
Краткое резюме
Вы установили Solr, создали коллекцию, добавили документ и выполнили запрос через веб‑интерфейс. Для продакшн‑развёртывания добавьте мониторинг, резервное копирование и настройку безопасности.
Полезно: если планируете масштабировать, изучите SolrCloud, replication и конфигурацию JVM (heap, GC).
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента