Apache Solr¶
В этой статье
Информация
Apache Solr — это бесплатная платформа для полнотекстового поиска и индексации, построенная на базе поисковой библиотеки Apache Lucene. Solr предоставляет высокопроизводительные возможности поиска в реальном времени, масштабируемость, отказоустойчивость и расширенную функциональность для создания поисковых приложений.
Apache Solr. Основные возможности¶
- Полнотекстовый поиск — обеспечивает быстрый и точный поиск по большим объемам текстовых данных с поддержкой морфологического анализа, фильтрации, ранжирования и подсветки результатов.
- Масштабируемость — поддерживает распределенное индексирование и поиск через несколько узлов (SolrCloud), что позволяет масштабироваться до сотен миллионов документов.
- Индексирование в реальном времени — обеспечивает возможность добавления, обновления и удаления документов с минимальной задержкой.
- Расширенная функциональность поиска — поддержка фасетного поиска, пространственных запросов, поиска по аудио- и видеоданным, а также интеграция с Elasticsearch.
- Гибкая схема данных — позволяет работать с различными форматами данных (JSON, XML, CSV, PDF, Word и другие) и настраивать схему индексации под конкретные задачи.
- Надежная архитектура — обеспечивает отказоустойчивость через репликацию данных, автоматическое восстановление узлов и балансировку нагрузки.
- Развитая экосистема — интеграция с популярными языками программирования (Java, Python, PHP, Ruby) и фреймворками, а также наличие большого количества плагинов и расширений.
- Управление через API — предоставляет RESTful API для управления индексами, выполнения запросов и мониторинга состояния кластера.
Особенности сборки¶
| ID | Имя ПО | ОС | VPS | BM | VGPU | GPU | Мин. ЦПУ (Ядер) | Мин. ОЗУ (ГБ) | Мин. HDD/SDD (ГБ) | Свой домен | Доступно |
|---|---|---|---|---|---|---|---|---|---|---|---|
| --- | Apache Solr 9.10.1 | Ubuntu 22.04, Ubuntu 24.04, Debian 11, Debian 12 | + | + | + | + | 1 | 2 | 10 | Нет | ЗАКАЗАТЬ |
Информацию по особенностям развертывания данного ПО можно посмотреть по ссылке
Примечание
Если не указано иное, по умолчанию мы устанавливаем последнюю релиз версию программного обеспечения с сайта разработчика или репозиториев операционной системы.
Начало работы после развертывания Apache Solr¶
После оплаты заказа на указанную при регистрации электронную почту придет уведомление о готовности сервера к работе. В нем будет указан IP-адрес VPS, а также логин и пароль для подключения. Управление оборудованием клиенты нашей компании осуществляют в панели управления серверами и API — Invapi.
Данные для доступа¶
- Адрес панели управления Apache Solr: указан в теге webpanel панели управления сервером или в присланном e-mail.
Первичная настройка¶
- Перейдите по ссылке панели управления (например,
https://apache-solr<ID-сервера>.hostkey.in/solr/). - Откроется главная страница Solr Admin с информацией о состоянии сервера.
- Создайте первую коллекцию или ядро (core) для начала работы.
Информация
Apache Solr развернут в Docker-контейнере. Данные хранятся в директории /opt/solr/data/ на хосте.
Создание ядра¶
Для создания нового ядра (core) через веб-интерфейс:
- Перейдите в раздел Core Admin.
- Нажмите Add Core.
- Укажите имя ядра и параметры конфигурации.
- Нажмите Add Core для создания.
Настройка безопасности¶
Внимание
По умолчанию Apache Solr работает без аутентификации и шифрования. Это означает, что любой, кто знает адрес сервера, может получить полный доступ к вашим данным. Настоятельно рекомендуется настроить аутентификацию и TLS перед использованием в продакшн-среде.
Включение аутентификации¶
Для настройки базовой аутентификации (BasicAuth) выполните следующие шаги:
- Создайте файл
security.jsonв директории данных Solr:
cat > /opt/solr/data/security.json << 'EOF'
{
"authentication": {
"blockUnknown": true,
"class": "solr.BasicAuthPlugin",
"credentials": {
"user1": "IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0= Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="
},
"forwardCredentials": false
},
"authorization": {
"class": "solr.RuleBasedAuthorizationPlugin",
"permissions": [
{
"name": "security-edit",
"role": "admin"
},
{
"name": "collection-admin-edit",
"role": "admin"
},
{
"name": "core-admin-edit",
"role": "admin"
},
{
"name": "read",
"role": "admin"
},
{
"name": "update",
"role": "admin"
},
{
"name": "schema-edit",
"role": "admin"
},
{
"name": "all",
"role": "admin"
}
],
"user-role": {
"user1": "admin"
}
}
}
EOF
- Перезапустите контейнер Solr:
-
После перезапуска для входа в панель управления используйте:
-
Логин:
user1 - Пароль:
SolrRocks
Внимание
Обязательно измените пароль SolrRocks на собственный. Для этого используйте API:
Включение TLS (HTTPS)¶
Для настройки HTTPS рекомендуется использовать Nginx в качестве reverse proxy с SSL-сертификатом Let's Encrypt:
-
Убедитесь, что Nginx запущен и настроен (на сервере уже работает контейнер
nginx-nginx-1). -
Создайте конфигурацию для Solr в Nginx:
server {
listen 443 ssl;
server_name solr.ваш-домен.ru;
ssl_certificate /etc/letsencrypt/live/solr.ваш-домен.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/solr.ваш-домен.ru/privkey.pem;
location /solr/ {
proxy_pass http://localhost:8983/solr/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Примечание
Сертификаты Let's Encrypt автоматически обновляются. Убедитесь, что сертификат настроен для вашего домена.
Проверка настроек безопасности¶
После настройки аутентификации проверьте, что доступ защищен:
# Проверка без аутентификации (должно вернуть 401)
curl -I http://localhost:8983/solr/admin/info/system
# Проверка с аутентификацией (должно вернуть данные)
curl --user user1:ваш_пароль http://localhost:8983/solr/admin/info/system
Информация
Подробная документация по настройке Apache Solr доступна на официальном сайте.
Заказ сервера с Apache Solr с помощью API¶
Установка данного ПО с использованием API описана в данном руководстве.