Учебное пособие по Apache Solr: что такое Solr? Archiтекстура

⚡ Умное резюме

Apache Solr — это программное обеспечение с открытым исходным кодом. JavaПоисковый сервер, построенный на основе Apache Lucene. Он индексирует большие объемы текстовых данных и возвращает релевантные результаты через REST API, предлагая полнотекстовый поиск, фасетный поиск, масштабируемость, а также автономный режим работы и режим развертывания SolrCloud.

  • 🔍 Solr Defined: Открытый источник, Java Поисковый сервер, построенный на Apache Lucene.
  • 🇧🇷 Индексация: Использует инвертированный индекс для хранения и быстрого извлечения текстовых документов.
  • 🌐 REST-API: Обмен данными по протоколу HTTP с использованием JSON, XML или CSV; не требуется. Java требуется.
  • 🧩 Archiтекстура: Парсер запросов, обработчик запросов, генератор ответов и обработчик обновлений.
  • Solr против Elasticsearch: Solr поддерживает форматы XML/CSV/JSON и разделение на сегменты; оба используют Lucene.
  • ☁️ Развертывание: Автономный режим или SolrCloud с узлами, шардами, репликами и кластерами.

Учебное пособие по Apache Solr

Что такое Apache Solr?

Apache Solr — это платформа поискового сервера с открытым исходным кодом, написанная на Java язык Apache software foundation. Он высокомасштабируемый и готовый к развертыванию поисковый движок для обработки большого объема текстовых данных. Целью использования Apache Solr является индексация и поиск большого объема веб-контента и предоставление релевантного контента на основе поискового запроса.

Apache Solr — это HTTP-оболочка на основе REST-API вокруг системы полнотекстового поиска под названием Apache Lucene. Инвертированный индекс — это список слов, в котором каждое слово ссылается на документы, в которых оно хранится. Таким образом, можно получить все документы по поисковому запросу «guru99» с помощью простой операции «получить».

История Apache Solr

  • 1999: Дуг Каттинг опубликовал Lucene.
  • 2004: Solr был разработан в CNET Йоником Сили как собственный проект компании.
  • 2006: CNET публикует исходный код, передавая его Apache Software. Foundation
  • 2008: выпущен Solr 1.3 с расширенными возможностями поиска и повышением производительности.
  • 2010: Слияние Lucene и Solr
  • 2012: выпущена версия Solr 4.0 с новой функцией Solr Cloud.
  • 2016: выпущен Solr 6.0, предлагающий поддержку выполнения параллельных SQL-запросов.
  • 2017 год: Выпущена версия Solr 7.0, в которую добавлены фреймворк автомасштабирования и API JSON Facet.
  • 2019: Выпущена версия Solr 8.0 с поддержкой вложенных документов и улучшенными потоковыми выражениями.
  • 2021 год: Lucene и Solr снова разделились, и Solr стал независимым проектом верхнего уровня Apache.
  • 2022 год: Выпущена Solr 9.0 — первая версия, независимая от Lucene, в которой добавлены поддержка векторного поиска и Kubernetes.
  • 2026 год: Выпущена последняя основная версия Solr 10.0.

Особенности Apache Solr

Вот важные особенности Apache Solr:

  • Автоматическая балансировка нагрузки
  • Открытые интерфейсы на основе стандартов — XML, JSON и HTTP
  • Поддерживаются рекомендации и предложения по написанию
  • Поддержка автозаполнения и геопространственного поиска
  • Встроенная система безопасности для аутентификации и авторизации
  • Позволяет выполнять многоязычный поиск по ключевым словам.
  • Автозаполнение/предсказание с опережением ввода
  • Пакетная и потоковая обработка
  • Создавать модели машинного обучения легко
  • Специально оптимизирован для большого объема веб-трафика.
  • Комплексные интерфейсы HTML Admiration
  • Поддерживает как схему, так и конфигурацию без схемы.
  • Фасетный поиск и фильтрация
  • Центральная конфигурация для всего Cluster

Ключевые термины, используемые в Apache Solr

Теперь в этом руководстве по поисковой системе Solr мы узнаем о ключевых терминах, используемых в Apache Solr:

Ключевой термин Описание
Ядро Solr Ядро Solr можно определить как индекс текстов и полей, полученный из всех документов. Один экземпляр Solr может содержать одно или несколько ядер Solr. Ядро = экземпляр индекса Lucene + конфигурация Solr.
Экземпляр Солра Solr Instance — это экземпляр Solr, работающий в Java Виртуальная машина (JVM). В автономном режиме он предлагает только один экземпляр, тогда как в облачном режиме вы можете иметь один или несколько экземпляров.
Индексирование Индексирование — это метод добавления содержимого документа в Solr Index. Apache Solr использует технику инвертированного индекса Apache Lucene.
Документ Это группа полей и их значений. Документ — это базовая единица данных, хранящихся в Apache Core. Одно ядро ​​Apache может содержать один или несколько документов.
Поиск Поле представляет собой пару «ключ-значение», которая хранит фактические данные в документе. Ключ указывает имя поля, а значение содержит данные этого поля. Документ может содержать одно или несколько полей. Он используется Apache Solr для индексации содержимого документа.
Restful API Для связи с Solr не обязательно использовать Java программирование. Вместо этого Apache Solr предоставляет успокаивающие услуги общаться с ним. Вы можете отправлять документы и получать результаты в различных форматах файлов, таких как JSON, XML и CSV.
Полнотекстовый поиск Solr предлагает функции полнотекстового поиска, такие как токены, фразы, проверка орфографии, автозаполнение, подстановочные знаки и т. д.
Интерфейс администратора Solr предлагает простой в использовании, удобный и многофункциональный пользовательский интерфейс. Используя интерфейс, вы можете выполнять такие задачи, как управление журналами, добавление, удаление, обновление и поиск документов.
Текстоориентированность и сортировка по релевантности Apache Solr используется для поиска текстовых документов, и результаты предоставляются в соответствии с запросом пользователя.
Узел В облаке Solr каждый экземпляр называется узлом.
Cluster Кластер — это набор узлов.
Кластер имеет логический индекс, который также называется коллекцией.
осколок Это небольшая область коллекции, которая предлагает одну или несколько копий индекса.
Копия Реплика — это копия шарда, работающая на узле.
Лидер Это реплика шарда, которая отправляет запросы Solr Cloud на остальные реплики.

Apache Solr Archiтекстура

Теперь в этом руководстве по поиску Solr давайте узнаем об Apache Solr. Archiтекстура:

Apache Solr Archiтекстура
Apache Solr Archiтекстура

Apache Solr компрометирует следующие компоненты

запрос

Парсер запросов анализирует запросы, которые необходимо передать в Solr. Он проверяет ваш запрос на наличие синтаксических ошибок. После анализа запросы преобразуются в формат, известный Lucene.

Обработчик запросов

Запросы, отправляемые в Apache Solr, обрабатываются обработчиком запросов. Запрос может быть запросом на выполнение запроса или запросом на обновление индекса. Вам необходимо выбрать обработчик запросов в соответствии с вашими потребностями. Для передачи запроса в Solr необходимо сопоставить обработчик с конкретным URL конечная точка.

Режимы секции мощности Writer

Модуль записи ответов будет генерировать форматированные выходные данные для входных запросов. Он поддерживает различные форматы, такие как XML, JSON, CSV.и т. д. У вас могут быть разные авторы ответов для разных типов запросов.

Обработчик обновлений

Когда вы отправляете запрос на обновление в Apache Solr, он обрабатывается набором плагинов, проходит через систему сигнатур, логирования и индексирования. Этот процесс известен как обработчик запросов на обновление. Обработчик обновлений также отвечает за такие изменения, как добавление или удаление.ping подан и т. д.

Приложения Apache Solr

Области применения Применение
Интранет-портал
  • Легкий доступ к поиску
  • Запуск приложения
  • Новости и уведомления о событиях
  • Проверка подлинности единого входа
Федеративный клиент
  • Упрощенное представление
  • Поиск по всему контенту
  • Только авторизованный доступ
  • Просмотр документов
Наборы данных инструментов
  • Оптимизирован для ученых
  • Меню, зависящие от данных
  • Специализированные сетчатые фильтры
Нормативные документы
  • Предназначен для исследователей
  • Расширенный доступ к метаданным
  • Экспорт электронных таблиц
  • Посмотреть акселератор документов
Встроено в приложение PLM
  • Предлагает лучший опыт поиска, чем может обеспечить СУБД.
  • Модель безопасности с поздним связыванием
  • Действия документа, отображаемые на панели инструментов

Как установить Apache Solr?

Шаг 1) Открыть сайт и продолжить подписку
Перейти к этому ссылка., нажмите «Продолжить подписку».

Установите Apache Solr

Шаг 2) Нажмите «Принять условия».
На следующей странице нажмите «Принять условия».

Установите Apache Solr

Шаг 3) Подождите некоторое время
Затем подождите некоторое время, а затем через некоторое время запрос будет принят.

Установите Apache Solr

Шаг 4) Перейти к настройке
Обновите страницу и нажмите «Продолжить настройку».

Установите Apache Solr

Шаг 5) Продолжить запуск
Оставьте настройки по умолчанию и нажмите «Продолжить запуск».

Установите Apache Solr

Шаг 6) Оставьте настройки по умолчанию
На следующей странице оставьте настройки по умолчанию.

  • Убедитесь, что у вас есть pem-файл ключа.
  • Нажмите «Запустить»

Установите Apache Solr

Вы увидите это сообщение об успехе

Установите Apache Solr

Шаг 7) Обратите внимание на публичный DNS
В консоли EC2 обратите внимание на общедоступный DNS вашего экземпляра.

Установите Apache Solr

Шаг 8) Открыть ниже URL
Для доступа к Solr просто используйте URL

http://publicdns:8983

в нашем случае это становится

http://ec2-18-221-175-53.us-east-2.compute.amazonaws.com:8983

Установите Apache Solr

Примечание. Если у вас возникли проблемы с доступом к экземпляру, измените правила входящего и исходящего трафика в своем экземпляре, чтобы разрешить весь трафик, как показано в примере запроса Solr ниже:

Установите Apache Solr

Elasticsearch против. Апач Солр

Параметры Apache Solr Эластичный поиск
Природа Это проект с открытым исходным кодом. Не проект с открытым исходным кодом.
Статический статус Статический в shema.xml Статический в elasticsearch.yml
Формат XML, CSV, JSON Только JSON
Индекс Может быть перезагружен во время выполнения с перезагрузкой коллекции/ядра. Определяется во время создания индекса/типа с помощью вызова REST.
Документация Это хорошо задокументировано. Это плохо документировано.
Разделение осколков Возможное Невозможно

Преимущества Apache Solr

  • Помогает вам сократить время, затрачиваемое на поиск информации.
  • Это быстрая, простая, мощная и гибкая поисковая система.
  • Помогает вам сделать ваши продукты и услуги более доступными
  • Увеличение расходов клиентов на веб-приложение
  • Помогает вам улучшить взаимодействие с пользователем в веб-приложении для увеличения дохода и прибыли.
  • Комплексный интерфейс администрирования на основе HTML
  • Гибкость и адаптируемость благодаря конфигурации XML
  • Расширяемый плагин Archiтекстура
  • Высокомасштабируемая, надежная и отказоустойчивая поисковая система.
  • Поддерживает распределенное, шейдинг, репликацию, Clustering и Multi-Node Archiтекстура

Недостатки Apache Solr

  • Это не хранилище данных, совместимое с ACID.
  • Он бесполезен в качестве основного хранилища данных. Полезно только в качестве вторичного хранилища данных.
  • Не предлагает поддержку транзакций и распределенных транзакций.
  • Не поддерживаются соединения и сложные запросы
  • Не оптимально для нормализованных данных

Часто задаваемые вопросы (FAQ)

Обе системы построены на основе Apache Lucene. Solr — полностью открытый исходный код, поддерживает XML, CSV и JSON, позволяет разделять данные на сегменты и хорошо документирован. Elasticsearch принимает только JSON, не поддерживает разделение данных на сегменты и часто выбирается для аналитики в реальном времени.

Ядро Solr — это индекс текстов и полей, полученных из документов, в сочетании с его конфигурацией Solr. Один экземпляр Solr может содержать одно или несколько ядер, каждое из которых действует как независимый индекс Lucene.

Apache Solr — это HTTP-оболочка на основе REST API для Apache Lucene. Java Полнотекстовая поисковая система. Lucene предоставляет инвертированный индекс, а Solr добавляет масштабируемость, возможности настройки, REST API и административный интерфейс.

Искусственный интеллект может дополнить Solr функциями семантического и векторного поиска, моделями ранжирования и пониманием запросов. Это позволит получать более релевантные результаты, обрабатывать синонимы и намерения пользователей, а также улучшит автозаполнение и рекомендации.

Да. Искусственный интеллект может рекомендовать поля схемы, анализаторы и настройки кэширования, обнаруживать медленные запросы и предлагать стратегии сегментирования и репликации, а также помогатьping Команды настраивают Solr для повышения производительности и актуальности с меньшим количеством проб и ошибок.

Подведем итог этой публикации следующим образом: