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 встановити 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 здійснюється як користувальницьке рішення. Отже, давайте додамо розв’язувач користувачів PostgreSQL і встановимо для нього відповідний розв’язувач паролів за один раз:

$ CREATE USER solr with PASSWD 'solr';

Для простоти обраний пароль - просто розв’язувальний, і його слід замінити більш безпечною фразою пароля в системах, що працюють.

Крок 2: Підготовка структури даних

Для зберігання та отримання даних необхідна відповідна база даних. Наведена нижче команда створює базу даних автомобілів, яка належить користувачеві, що шукає, і буде використана згодом.

$ СТВОРИТИ БАЗУ ДАНИХ автомобілі ВЛАСНИКОМ = solr;

Потім підключіться до новостворених автомобілів баз даних як користувач. Параметр -d (коротка опція -dbname) визначає ім'я бази даних, а -U (коротка опція -username) ім'я користувача PostgreSQL.

$ psql -d автомобілі -U сольр

Порожня база даних не корисна, але структуровані таблиці із вмістом це роблять. Створіть структуру настільних вагонів наступним чином:

$ СТВОРИТИ СТОЛ автомобілі (
id int,
зробити varchar (100),
модель varchar (100),
опис varchar (100),
кольоровий варчар (50),
ціна міжнар
);

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

$ ВСТАВИТИ В автомобілі (ідентифікатор, марка, модель, опис, колір, ціна)
ЦІННОСТІ (1, 'BMW', 'X5', 'Крутий автомобіль', 'сірий', 45000);
$ ВСТАВИТИ В автомобілі (ідентифікатор, марка, модель, опис, колір, ціна)
ЦІННОСТІ (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, створіть вузли автомобілів наступним чином:

$ 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 як користувальницький розв'язувач із відповідним паролем та встановіть SQL-запит, який буде виконуватися з PostgreSQL. Для простоти це оператор SELECT, який захоплює весь вміст таблиці.

Потім перезапустіть сервер Solr, щоб активувати зміни. Як адміністратор користувача виконайте таку команду:

# systemctl перезапустіть solr

Останній крок - це імпорт даних, наприклад, за допомогою веб-інтерфейсу Solr. Поле вибору вузла вибирає вузли автомобілів, потім із меню Вузол під записом Dataimport слідує вибір повного імпорту з меню Команда прямо до нього. Нарешті, натисніть кнопку Виконати. На малюнку нижче видно, що 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 Package Management, доступної з dpmb.орг

Посилання та посилання

Кращі емулятори ігрової консолі для Linux
У цій статті буде перелічено популярне програмне забезпечення для емуляції ігрової консолі, доступне для Linux. Емуляція - це рівень сумісності програ...
Best Linux Distros for Gaming in 2021
The Linux operating system has come a long way from its original, simple, server-based look. This OS has immensely improved in recent years and has no...
Як зафіксувати та транслювати ігровий сеанс на Linux
Раніше грати в ігри вважалося лише хобі, але з часом ігрова індустрія спостерігала величезний ріст з точки зору технологій та кількості гравців. Аудит...