Това е последваща статия към предишните две [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.орг
Връзки и справки
- [1] Apache Solr, https: // lucene.апаш.org / solr /
- [2] Франк Хофман и Джаки Кабета: Въведение в Apache Solr. Част 1, https: // linuxhint.com / apache-solr-setup-a-node /
- [3] Франк Хофман и Джаки Кабета: Въведение в Apache Solr. Заявка за данни. Част 2, http: // linuxhint.com
- [4] PostgreSQL, https: // www.postgresql.организация /
- [5] Younis Said: Как да инсталирате и настроите база данни PostgreSQL на Ubuntu 20.04, https: // linuxhint.com / install_postgresql_-ubuntu /
- [6] Франк Хофман: Настройване на PostgreSQL с PostGIS на Debian GNU / Linux 10, https: // linuxhint.com / setup_postgis_debian_postgres /
- [7] Ingres, Wikipedia, https: // en.wikipedia.org / wiki / Ingres_ (база данни)