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 години. Произхожда от Калифорнийския университет, където се смята за наследник на Ingres [7].

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

Настройка на PostgreSQL

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

# apt инсталирайте 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. Така че, нека добавим PostgreSQL потребителски solr и да му зададем съответния solr парола за него с едно движение:

$ CREATE USER solr С PASSWD 'solr';

За простота, избраната парола е просто solr и трябва да бъде заменена с по-безопасна фраза за парола в системите, които се произвеждат.

Стъпка 2: Подготовка на структура от данни

За съхранение и извличане на данни е необходима съответна база данни. Командата по-долу създава база данни с автомобили, която принадлежи на потребителя solr и ще бъде използвана по-късно.

$ СЪЗДАЙТЕ БАЗА ДАННИ с СОБСТВЕНИК = solr;

След това се свържете с новосъздадените автомобили с бази данни като потребителски инструмент. Опцията -d (кратка опция за -dbname) дефинира името на базата данни, а -U (кратка опция за -username) името на потребителя на PostgreSQL.

$ psql -d автомобили -U solr

Празната база данни не е полезна, но структурираните таблици със съдържание имат. Създайте структурата на вагоните за маса, както следва:

$ СЪЗДАЙТЕ МАСА коли (
id int,
направи varchar (100),
модел varchar (100),
описание varchar (100),
цветен вархар (50),
цена вътрешна
);

Таблиците коли съдържат шест полета с данни - id (цяло число), make (низ с дължина 100), модел (низ с дължина 100), описание (низ с дължина 100), цвят (низ с дължина 50) и цена (цяло число). За да имате някои примерни данни, добавете следните стойности към колите на таблицата като SQL изрази:

$ INSERT INTO автомобили (id, марка, модел, описание, цвят, цена)
СТОЙНОСТИ (1, 'BMW', 'X5', 'Cool car', 'grey', 45000);
$ INSERT INTO автомобили (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 Connectivity (JDBC) драйвер и разширение за конфигурацията на сървъра Solr. JDBC драйверът добавя Java интерфейс към PostgreSQL, а допълнителният запис в конфигурацията Solr казва на Solr как да се свърже с PostgreSQL с помощта на JDBC драйвер.

Добавянето на JDBC драйвер се извършва като потребителски корен, както следва, и инсталира JDBC драйвера от хранилището на пакети Debian:

# apt-get инсталирайте libpostgresql-jdbc-java

От страна на Apache Solr също трябва да съществува съответстващ възел. Ако все още не е направено, като UNIX потребителски solr, създайте възела автомобили, както следва:

$ bin / solr създайте -c автомобили

След това разширете конфигурацията 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 сървъра, за да активирате промените си. Като потребителски корен изпълнете следната команда:

# systemctl рестартирайте solr

Последната стъпка е импортирането на данните, например с помощта на уеб интерфейса Solr. Полето за избор на възел избира автомобилите на възела, след това от менюто Node под записа Dataimport, последвано от избора на пълен импорт от менюто Command точно до него. Накрая натиснете бутона за изпълнение. Фигурата по-долу показва, че Solr успешно е индексирал данните.

Стъпка 4: Заявка за данни от СУБД

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

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

Примерът по-долу показва резултата от заявката “/ select?q = *. * ”Във формат JSON в администраторския интерфейс Solr. Данните се извличат от колите на базата данни, които създадохме по-рано.

Заключение

Тази статия показва как да заявите база данни PostgreSQL от Apache Solr и обяснява съответната настройка. В следващата част от тази поредица ще научите как да комбинирате няколко Solr възла в Solr клъстер.

Относно авторите

Jacqui Kabeta е природозащитник, запален изследовател, треньор и ментор. В няколко африкански държави тя е работила в ИТ индустрията и средите на НПО.

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

Връзки и справки

Как да използвам GameConqueror Cheat Engine в Linux
Статията обхваща ръководство за използването на GameConqueror cheat engine в Linux. Много потребители, които играят игри под Windows, често използват ...
Най-добрите емулатори на игрови конзоли за Linux
Тази статия ще изброи популярния софтуер за емулация на игрова конзола, наличен за Linux. Емулацията е слой за софтуерна съвместимост, който емулира х...
Най-добрите дистрибуции на Linux за игри през 2021 г
Операционната система Linux е изминала дълъг път от първоначалния си, прост, базиран на сървъра външен вид. Тази операционна система се подобри неимов...