Гид по технологиям

Установка Apache Solr на Ubuntu — пошаговое руководство

• 4 min read • DevOps • Обновлено 27 Nov 2025
Установка Apache Solr на Ubuntu — пошагово
Установка 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

Обновление Ubuntu.

Установка сред выполнения 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, чтобы продолжить.

Установка python-software-properties.

Добавьте репозиторий webupd8team для Oracle Java:

sudo add-apt-repository ppa:webupd8team/java

Нажмите Enter, когда будет предложено. Затем обновите списки пакетов:

sudo apt-get update

Добавление PPA Java.

Установите Oracle Java 8:

sudo apt-get install oracle-java8-installer

В процессе установки потребуется принять лицензионное соглашение Oracle.

Принятие лицензионного соглашения Java.

После установки проверьте версию 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/

Веб-интерфейс Solr

Выберите коллекцию gettingstarted в левом меню, чтобы увидеть её состояние и конфигурацию.

Добавление документов вручную

Перейдите в раздел Documents, вставьте JSON и нажмите Submit Document. Пример JSON‑документа:

{
 "id": 1,
 "book_title": "My First Book",
 "published": 1985,
 "description": "All about Linux"
}

Добавление документа в Solr.

Ожидаемый ответ:

Status: success
Response:

{
 "responseHeader": {
 "status": 0,
 "QTime": 606
 }
}

Выполнение запроса

Перейдите в раздел Query и нажмите Execute Query. Введите q=: чтобы получить все документы.

Выполнение запроса в Solr.

Пример результата:

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)

  1. Выберите стабильную версию Solr и Java (рекомендуется LTS).
  2. Тестируйте сборку на staging с теми же конфигурациями JVM и heap.
  3. Настройте SolrCloud при необходимости высокой доступности.
  4. Настройте мониторинг и алерты по SLI/SLO (время отклика / процент ошибок).
  5. Регулярно делайте бэкапы индексов.

Критерии приёмки

  • Сервис 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).

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро