Перейти к содержанию

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, а также логин и пароль для подключения. Управление оборудованием клиенты нашей компании осуществляют в панели управления серверами и APIInvapi.

Данные для доступа

  • Адрес панели управления Apache Solr: указан в теге webpanel панели управления сервером или в присланном e-mail.

Первичная настройка

  1. Перейдите по ссылке панели управления (например, https://apache-solr<ID-сервера>.hostkey.in/solr/).
  2. Откроется главная страница Solr Admin с информацией о состоянии сервера.
  3. Создайте первую коллекцию или ядро (core) для начала работы.

Информация

Apache Solr развернут в Docker-контейнере. Данные хранятся в директории /opt/solr/data/ на хосте.

Создание ядра

Для создания нового ядра (core) через веб-интерфейс:

  1. Перейдите в раздел Core Admin.
  2. Нажмите Add Core.
  3. Укажите имя ядра и параметры конфигурации.
  4. Нажмите Add Core для создания.

Настройка безопасности

Внимание

По умолчанию Apache Solr работает без аутентификации и шифрования. Это означает, что любой, кто знает адрес сервера, может получить полный доступ к вашим данным. Настоятельно рекомендуется настроить аутентификацию и TLS перед использованием в продакшн-среде.

Включение аутентификации

Для настройки базовой аутентификации (BasicAuth) выполните следующие шаги:

  1. Создайте файл 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
  1. Перезапустите контейнер Solr:
docker restart apache-solr<ID-сервера>.hostkey.in
  1. После перезапуска для входа в панель управления используйте:

  2. Логин: user1

  3. Пароль: SolrRocks

Внимание

Обязательно измените пароль SolrRocks на собственный. Для этого используйте API:

curl --user user1:SolrRocks -X PUT -H 'Content-type:application/json' \
  -d '{"set-user": {"user1": "ваш_новый_пароль"}}' \
  http://localhost:8983/solr/admin/authentication

Включение TLS (HTTPS)

Для настройки HTTPS рекомендуется использовать Nginx в качестве reverse proxy с SSL-сертификатом Let's Encrypt:

  1. Убедитесь, что Nginx запущен и настроен (на сервере уже работает контейнер nginx-nginx-1).

  2. Создайте конфигурацию для 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 описана в данном руководстве.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×