Apache Solr

Apache Solr Настройка узла

Apache Solr Настройка узла

Часть 1: Настройка единственного узла

Сегодня электронное хранение ваших документов или данных на запоминающем устройстве - это быстро и просто, а также сравнительно дешево. Используется ссылка на имя файла, предназначенная для описания документа. В качестве альтернативы данные хранятся в системе управления базами данных (СУБД), такой как PostgreSQL, MariaDB или MongoDB, чтобы просто назвать несколько вариантов. Несколько носителей данных подключены к компьютеру локально или удаленно, например, USB-накопитель, внутренний или внешний жесткий диск, сетевое хранилище (NAS), облачное хранилище или на базе графического процессора / флэш-памяти, как в Nvidia V100 [10].

Напротив, обратный процесс поиска нужных документов в коллекции документов довольно сложен. В основном это требует безошибочного определения формата файла, индексации документа и извлечения ключевых понятий (классификация документов). Здесь на помощь приходит фреймворк Apache Solr. Он предлагает практичный интерфейс для выполнения упомянутых шагов - создания индекса документа, приема поисковых запросов, выполнения фактического поиска и возврата результата поиска. Таким образом, Apache Solr формирует основу для эффективного исследования базы данных или хранилища документов.

В этой статье вы узнаете, как работает Apache Solr, как настроить отдельный узел, индексировать документы, выполнять поиск и получать результат.

Последующие статьи основываются на этом, и в них мы обсуждаем другие, более конкретные варианты использования, такие как интеграция СУБД PostgreSQL в качестве источника данных или балансировка нагрузки между несколькими узлами.

О проекте Apache Solr

Apache Solr - это структура поисковой системы, основанная на мощном сервере поисковых индексов Lucene [2]. Написанный на Java, он поддерживается Apache Software Foundation (ASF) [6]. Он находится в свободном доступе по лицензии Apache 2.

Тема «Снова найти документы и данные» играет очень важную роль в мире программного обеспечения, и многие разработчики активно занимаются этим. На сайте Awesomeopensource [4] перечислены более 150 проектов с открытым исходным кодом для поисковых систем. По состоянию на начало 2021 года ElasticSearch [8] и Apache Solr / Lucene занимают лидирующие позиции в поиске больших наборов данных. Разработка поисковой системы требует больших знаний, Фрэнк делает это с помощью библиотеки AdvaS Advanced Search [3] на базе Python с 2002 года.

Настройка Apache Solr:

Установка и работа Apache Solr не сложны, это просто целый ряд шагов, которые вы должны выполнить. Подождите около 1 часа для результата первого запроса данных. Кроме того, Apache Solr - это не просто хобби-проект, он также используется в профессиональной среде. Поэтому выбранная среда операционной системы рассчитана на долгосрочное использование.

В качестве базовой среды для этой статьи мы используем Debian GNU / Linux 11, который является предстоящим выпуском Debian (по состоянию на начало 2021 года) и, как ожидается, будет доступен в середине 2021 года. В этом руководстве мы ожидаем, что вы уже установили его - либо в качестве собственной системы, либо на виртуальной машине, такой как VirtualBox, либо в контейнере AWS.

Помимо основных компонентов, в системе должны быть установлены следующие программные пакеты:

Эти пакеты являются стандартными компонентами Debian GNU / Linux. Если они еще не установлены, вы можете установить их за один раз как пользователь с правами администратора, например, root или через sudo, как показано ниже:

# apt-get install curl default-java libcommons-cli-java libxerces2-java libtika-java

После подготовки среды второй шаг - установка Apache Solr. На данный момент Apache Solr недоступен как обычный пакет Debian. Следовательно, требуется получить Apache Solr 8.8 из раздела загрузок на сайте проекта [9] сначала. Используйте команду wget ниже, чтобы сохранить его в каталоге / tmp вашей системы:

$ wget -O / tmp https: // загрузки.апач.org / lucene / solr / 8.8.0 / solr-8.8.0.тгз

Ключ -O сокращает -output-document и заставляет wget сохранять полученный tar.gz файл в указанном каталоге. Размер архива составляет примерно 190 МБ. Затем распакуйте архив в каталог / opt с помощью tar. В результате вы найдете два подкаталога - / opt / solr и / opt / solr-8.8.0, тогда как / opt / solr настроен как символическая ссылка на последний. Apache Solr поставляется с установочным скриптом, который вы выполните следующим образом:

# / opt / solr-8.8.0 / bin / install_solr_service.ш

Это приводит к созданию пользователя Linux, который запускается в службе Solr, плюс его домашний каталог в / var / solr устанавливает службу Solr, добавляется с соответствующими узлами и запускает службу Solr на порту 8983. Это значения по умолчанию. Если они вам не нравятся, вы можете изменить их во время установки или даже позже, так как сценарий установки принимает соответствующие переключатели для настроек настройки. Мы рекомендуем вам ознакомиться с документацией Apache Solr относительно этих параметров.

Программное обеспечение Solr организовано в следующих каталогах:

Более подробно об этих каталогах можно прочитать в документации Apache Solr [12].

Управление Apache Solr:

Apache Solr работает как служба в фоновом режиме. Вы можете запустить его двумя способами: с помощью systemctl (первая строка) от имени пользователя с административными правами или напрямую из каталога Solr (вторая строка). Мы перечисляем обе команды терминала ниже:

# systemctl start solr
$ solr / bin / solr start

Остановка Apache Solr выполняется аналогично:

# systemctl stop solr
$ solr / bin / solr stop

То же самое происходит при перезапуске службы Apache Solr:

# systemctl restart solr
$ solr / bin / solr перезапуск

Кроме того, статус процесса Apache Solr может отображаться следующим образом:

# systemctl status solr
$ solr / bin / solr статус

В выходных данных указывается запущенный служебный файл с соответствующими отметками времени и сообщениями журнала. На рисунке ниже показано, что служба Apache Solr была запущена на порту 8983 с процессом 632. Процесс успешно идет 38 минут.

Чтобы узнать, активен ли процесс Apache Solr, вы также можете перепроверить, используя команду ps в сочетании с grep. Это ограничивает вывод ps всеми процессами Apache Solr, которые в настоящее время активны.

# ps топор | grep --color solr

Рисунок ниже демонстрирует это для одного процесса. Вы видите вызов Java, который сопровождается списком параметров, например, использование памяти (512M) портов для прослушивания 8983 запросов, 7983 запросов остановки и типа соединения (http).

Добавление пользователей:

Процессы Apache Solr запускаются под конкретным пользователем с именем solr. Этот пользователь помогает управлять процессами Solr, загружать данные и отправлять запросы. После настройки пользователь solr не имеет пароля и, как ожидается, будет иметь пароль для входа в систему, чтобы продолжить. Установите пароль для пользователя solr, например пользователя root, он выглядит следующим образом:

# passwd solr

Администрация Solr:

Управление Apache Solr осуществляется с помощью панели инструментов Solr. Это доступно через веб-браузер по адресу http: // localhost: 8983 / solr. На рисунке ниже показан основной вид.

Слева вы видите главное меню, которое ведет к подразделам для ведения журнала, администрирования ядер Solr, настройки Java и информации о состоянии. Выберите желаемое ядро, используя поле выбора под меню. В правой части меню отображается соответствующая информация. Пункт меню Dashboard показывает дополнительную информацию о процессе Apache Solr, а также текущую нагрузку и использование памяти.

Помните, что содержимое панели инструментов меняется в зависимости от количества ядер Solr и проиндексированных документов. Изменения влияют как на пункты меню, так и на соответствующую информацию, которая отображается справа.

Понимание того, как работают поисковые системы:

Проще говоря, поисковые системы анализируют документы, классифицируют их и позволяют выполнять поиск на основе их категоризации. По сути, процесс состоит из трех этапов, которые называются сканированием, индексированием и ранжированием [13].

Ползать является первым этапом и описывает процесс сбора нового и обновленного контента. Поисковая система использует роботов, которые также известны как пауки или краулеры, отсюда и термин "сканирование" для просмотра доступных документов.

Второй этап называется индексация. Ранее собранный контент становится доступным для поиска за счет преобразования исходных документов в формат, понятный поисковой системе. Ключевые слова и концепции извлекаются и хранятся в (массивных) базах данных.

Третий этап называется рейтинг и описывает процесс сортировки результатов поиска по их релевантности поисковому запросу. Обычно результаты отображаются в порядке убывания, так что результат, имеющий наибольшую релевантность для запроса поисковика, идет первым.

Apache Solr работает аналогично ранее описанному трехэтапному процессу. Как и популярная поисковая система Google, Apache Solr использует последовательность сбора, хранения и индексации документов из разных источников и делает их доступными / доступными для поиска практически в реальном времени.

Apache Solr использует различные способы индексации документов, включая следующие [14]:

  1. Использование обработчика запросов индекса при загрузке документов непосредственно в Solr. Эти документы должны быть в форматах JSON, XML / XSLT или CSV.
  2. Использование обработчика запросов на извлечение (ячейка Solr). Документы должны быть в формате PDF или Office, которые поддерживаются Apache Tika.
  3. Использование обработчика импорта данных, который передает данные из базы данных и каталогизирует их, используя имена столбцов. Обработчик импорта данных извлекает данные из электронных писем, RSS-каналов, данных XML, баз данных и текстовых файлов в качестве источников.

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

Загрузка документов:

Для простоты мы используем образец набора данных для следующего примера, который уже предоставлен Apache Solr. Загрузка документов осуществляется как пользовательское решение. Шаг 1 - создание ядра с названием techproducts (для ряда технических элементов).

$ solr / bin / solr create -c techproducts

Все нормально, если вы видите сообщение «Создано новое ядро ​​'techproducts'». Шаг 2: добавление данных (XML-данные из exampledocs) к ранее созданным основным техническим продуктам. Используется пост инструмента, параметризованный параметром -c (имя ядра), и документы для загрузки.

$ solr / bin / post -c techproducts solr / example / exampledocs / *.xml

Это приведет к выводу, показанному ниже, и будет содержать весь вызов плюс 14 документов, которые были проиндексированы.

Также на панели инструментов отображаются изменения. Новая запись с именем techproducts отображается в раскрывающемся меню слева, а количество соответствующих документов изменено справа. К сожалению, подробный просмотр необработанных наборов данных невозможен.

Если необходимо удалить ядро ​​/ коллекцию, используйте следующую команду:

$ solr / bin / solr удалить -c techproducts

Запрос данных:

Apache Solr предлагает два интерфейса для запроса данных: через веб-панель управления и командную строку. Мы объясним оба метода ниже.

Отправка запросов через панель инструментов Solr выполняется следующим образом:

Командная строка принимает тот же запрос, что и на панели инструментов. Разница в том, что вы должны знать названия полей запроса. Чтобы отправить такой же запрос, как указано выше, вы должны выполнить следующую команду в терминале:

$ curl
http: // локальный: 8983 / solr / techproducts / запрос?q = ”manu”: ”Белкин

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

Подведение итогов:

Поздравления! Вы успешно прошли первый этап. Базовая инфраструктура настроена, и вы узнали, как загружать и запрашивать документы.

На следующем шаге будет рассказано, как уточнить запрос, сформулировать более сложные запросы и понять различные веб-формы, предоставляемые страницей запросов Apache Solr. Кроме того, мы обсудим, как постобработать результат поиска, используя различные форматы вывода, такие как XML, CSV и JSON.

Об авторах:

Жаки Кабета - защитник окружающей среды, заядлый исследователь, тренер и наставник. В нескольких африканских странах она работала в ИТ-индустрии и в среде НПО.

Франк Хофманн - ИТ-разработчик, тренер и автор, предпочитающий работать из Берлина, Женевы и Кейптауна. Соавтор книги по управлению пакетами Debian, доступной на dpmb.org

Средняя кнопка мыши не работает в Windows 10
В средняя кнопка мыши помогает пролистывать длинные веб-страницы и экраны с большим объемом данных. Если это прекратится, вы в конечном итоге будете и...
Как изменить левую и правую кнопки мыши на ПК с Windows 10
Совершенно нормально, что все устройства компьютерной мыши эргономичны для правшей. Но есть мышиные устройства, специально разработанные для левшей ил...
Эмуляция щелчков мыши с помощью мыши без щелчка в Windows 10
Использование мыши или клавиатуры в неправильной позе или чрезмерное использование может привести к множеству проблем со здоровьем, включая растяжение...