Apache Solr

Введение в Apache Solr. Часть 3 Подключение к PostgreSQL

Введение в Apache Solr. Часть 3 Подключение к PostgreSQL
Apache Solr [1] - это структура поисковой машины, написанная на Java и основанная на поисковой библиотеке Lucene [6]. В предыдущих двух статьях мы настроили Apache Solr на Debian GNU / Linux 11, который скоро должен быть выпущен, инициировали единое ядро ​​данных, загрузили примеры данных, продемонстрировали, как запрашивать выходные данные разными способами и постобработку Это.

Эта статья является продолжением двух предыдущих [2,3]. До сих пор мы загружали индексированные данные в хранилище Apache Solr и запрашивали данные на нем. Теперь вы узнаете, как подключить систему управления реляционными базами данных PostgreSQL [4] к Apache Solr и выполнять в ней поиск, используя возможности Solr. Это требует выполнения нескольких шагов, описанных ниже более подробно: настройка PostgreSQL, подготовка структуры данных в базе данных PostgreSQL, подключение PostgreSQL к Apache Solr и выполнение нашего поиска.

Шаг 1. Настройка PostgreSQL

О PostgreSQL - краткая информация

PostgreSQL - гениальная система управления объектно-реляционными базами данных. Он доступен для использования и активно развивается уже более 30 лет. Он происходит из Калифорнийского университета, где считается преемником Энгра [7].

С самого начала он доступен по лицензии с открытым исходным кодом (GPL), бесплатен для использования, изменения и распространения. Он широко используется и очень популярен в отрасли. PostgreSQL изначально был разработан для работы только в системах UNIX / Linux, а позже был разработан для работы в других системах, таких как Microsoft Windows, Solaris и BSD. Текущая разработка PostgreSQL ведется по всему миру многочисленными добровольцами.

Настройка PostgreSQL

Если это еще не сделано, установите сервер и клиент PostgreSQL локально, например, в Debian GNU / Linux, как описано ниже, используя apt. Две статьи посвящены PostgreSQL - в статье Юниса Саида [5] обсуждается установка на Ubuntu. Тем не менее, он лишь поверхностно описывает, в то время как моя предыдущая статья посвящена комбинации PostgreSQL с расширением ГИС PostGIS [6]. Описание здесь суммирует все шаги, которые нам нужны для этой конкретной настройки.

# apt install postgresql-13 postgresql-client-13

Затем убедитесь, что PostgreSQL работает, с помощью команды pg_isready. Это утилита, входящая в пакет PostgreSQL.

# pg_isready
/ var / run / postgresql: 5432 - подключения принимаются

Приведенный выше вывод показывает, что PostgreSQL готов и ожидает входящих подключений на порту 5432. Если не указано иное, это стандартная конфигурация. Следующим шагом будет установка пароля для пользователя UNIX Postgres:

# passwd Postgres

Имейте в виду, что у PostgreSQL есть собственная база данных пользователей, тогда как у административного пользователя PostgreSQL Postgres еще нет пароля. Предыдущий шаг нужно сделать и для пользователя PostgreSQL - Postgres:

# su - Postgres
$ psql -c "ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ Postgres С ПАРОЛЕМ 'пароль';"

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

Затем по административным причинам подключитесь к PostgreSQL как пользователь Postgres с ранее созданным паролем. Команда называется psql:

$ psql

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

$ СОЗДАТЬ ПОЛЬЗОВАТЕЛЬСКИЙ solr С ПАРОЛЕМ 'solr';

Для простоты выбранный пароль просто solr и должен быть заменен на более безопасную парольную фразу в системах, которые находятся в производстве.

Шаг 2: Подготовка структуры данных

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

$ CREATE DATABASE cars WITH OWNER = solr;

Затем подключитесь к вновь созданной базе данных cars как пользователь solr. Параметр -d (короткий параметр для -dbname) определяет имя базы данных, а -U (короткий параметр для -username) имя пользователя PostgreSQL.

$ psql -d cars -U solr

Пустая база данных бесполезна, но структурированные таблицы с содержимым - полезны. Создайте структуру таблицы cars следующим образом:

$ CREATE TABLE cars (
id int,
сделать varchar (100),
модель varchar (100),
описание varchar (100),
цвет варчар (50),
цена int
);

Таблица cars содержит шесть полей данных - id (целое число), make (строка длиной 100), модель (строка длиной 100), описание (строка длиной 100), цвет (строка длиной 50) и цена (целое число). Чтобы получить образцы данных, добавьте следующие значения в таблицу cars в виде операторов SQL:

$ ВСТАВИТЬ автомобили (id, марка, модель, описание, цвет, цена)
ЗНАЧЕНИЯ (1, BMW, X5, Cool car, серый, 45000);
$ ВСТАВИТЬ автомобили (id, марка, модель, описание, цвет, цена)
ЦЕННОСТИ (2, Audi, Quattro, гоночный автомобиль, белый, 30000);

Результатом стали две записи, представляющие серый BMW X5, который стоит 45000 долларов США, описанный как крутой автомобиль, и белый гоночный автомобиль Audi Quattro, который стоит 30000 долларов США.

Затем выйдите из консоли PostgreSQL с помощью \ q или выйдите.

$ \ q

Шаг 3. Подключение PostgreSQL к Apache Solr

Соединение PostgreSQL и Apache Solr основано на двух частях программного обеспечения - драйвере Java для PostgreSQL, называемом драйвером Java Database Connectivity (JDBC), и расширении конфигурации сервера Solr. Драйвер JDBC добавляет интерфейс Java к PostgreSQL, а дополнительная запись в конфигурации Solr сообщает Solr, как подключиться к PostgreSQL с помощью драйвера JDBC.

Добавление драйвера JDBC выполняется от имени пользователя root, как показано ниже, и устанавливает драйвер JDBC из репозитория пакетов Debian:

# apt-get install libpostgresql-jdbc-java

На стороне Apache Solr также должен существовать соответствующий узел. Если это еще не сделано, в качестве пользователя UNIX solr создайте машины узлов следующим образом:

$ bin / solr create -c cars

Затем расширите конфигурацию Solr для вновь созданного узла. Добавьте приведенные ниже строки в файл / var / solr / data / cars / conf / solrconfig.xml:

db-data-config.xml

Кроме того, создайте файл / var / solr / data / cars / conf / data-config.xml и сохраните в нем следующее содержимое:

Строки выше соответствуют предыдущим настройкам и определяют драйвер JDBC, укажите порт 5432 для подключения к СУБД PostgreSQL в качестве пользователя solr с соответствующим паролем и установите SQL-запрос, который будет выполняться из PostgreSQL. Для простоты это оператор SELECT, который захватывает все содержимое таблицы.

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

# systemctl restart solr

Последний шаг - это импорт данных, например, с помощью веб-интерфейса Solr. В поле выбора узла выбираются автомобили узла, затем из меню узла под записью Dataimport следует выбор полного импорта из меню Command справа от него. Наконец, нажмите кнопку Execute. На рисунке ниже показано, что Solr успешно проиндексировал данные.

Шаг 4: Запрос данных из СУБД

В предыдущей статье [3] подробно рассматривается запрос данных, получение результата и выбор желаемого формата вывода - CSV, XML или JSON. Запрос данных выполняется аналогично тому, что вы узнали раньше, и пользователю не видно никакой разницы. Solr выполняет всю работу за кулисами и взаимодействует с СУБД PostgreSQL, подключенной, как определено в выбранном ядре или кластере Solr.

Использование Solr не меняется, и запросы можно отправлять через интерфейс администратора Solr или с помощью curl или wget в командной строке. Вы отправляете запрос Get с определенным URL-адресом на сервер Solr (запрос, обновление или удаление). Solr обрабатывает запрос, используя СУБД в качестве единицы хранения, и возвращает результат запроса. Затем обработайте ответ локально.

В приведенном ниже примере показан результат запроса «/ select?д = *. * »В формате JSON в интерфейсе администратора Solr. Данные берутся из созданной нами ранее базы данных автомобилей.

Заключение

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

Об авторах

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

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

Ссылки и ссылки

Курсор прыгает или перемещается случайным образом при наборе текста в Windows 10
Если вы обнаружите, что ваш курсор мыши прыгает или перемещается сам по себе, автоматически, случайным образом при вводе текста на ноутбуке или компью...
Как изменить направление прокрутки мыши и сенсорной панели в Windows 10
Мышь а также Сенсорная панельs не только упрощают вычисления, но и делают их более эффективными и требуют меньше времени. Мы не можем представить себе...
Как изменить указатель мыши и размер курсора, цвет и схему в Windows 10
Указатель мыши и курсор в Windows 10 - очень важные аспекты операционной системы. То же самое можно сказать и о других операционных системах, так что,...