Wprowadzenie do Apache Solr. Część 3 łączenie się z PostgreSQL

Wprowadzenie do Apache Solr. Część 3 łączenie się z PostgreSQL
Apache Solr [1] to ramy wyszukiwarki napisane w Javie i oparte na bibliotece wyszukiwania Lucene [6]. W dwóch poprzednich artykułach skonfigurowaliśmy Apache Solr na niedługo wydanym Debian GNU/Linux 11, zainicjowaliśmy pojedynczy rdzeń danych, przesłane przykładowe dane, wykazaliśmy, jak zapytać dane wyjściowe na różne sposoby i końcówka końcowa To.

Jest to artykuł uzupełniający do dwóch poprzednich [2,3]. Do tej pory załadowaliśmy indeksowane dane do pamięci Apache Solr i zapytaliśmy o to. Teraz dowiesz się, jak podłączyć relacyjny system zarządzania bazą danych PostgreSQL [4] do Apache Solr i przeprowadzić w nim wyszukiwanie za pomocą możliwości Solr. To sprawia, że ​​konieczne jest wykonanie kilku kroków opisanych poniżej - Konfigurowanie PostgreSQL, przygotowanie struktury danych w bazie danych PostgreSQL i podłączenie PostgreSQL z Apache Solr i wykonywanie naszego wyszukiwania.

Krok 1: Konfigurowanie PostgreSQL

O PostgreSQL - krótkie informacje

PostgreSQL to genialny system zarządzania bazą danych. Był dostępny do użytku i przeszedł aktywny rozwój od ponad 30 lat. Pochodzi z University of California, gdzie jest postrzegany jako następca Ingres [7].

Od samego początku jest dostępny w ramach Open-Source (GPL), bezpłatnie w użyciu, modyfikowaniu i dystrybucji. Jest szeroko stosowany i bardzo popularny w branży. PostgreSQL został początkowo zaprojektowany do działania tylko w systemach UNIX/Linux, a później został zaprojektowany do działania w innych systemach, takich jak Microsoft Windows, Solaris i BSD. Obecny rozwój PostgreSQL odbywa się na całym świecie przez wielu wolontariuszy.

Konfiguracja PostgreSQL

Jeśli jeszcze nie zrobiono, zainstaluj PostgreSQL Server i klient lokalnie, na przykład w Debian GNU/Linux, jak opisano poniżej za pomocą APT. Dwa artykuły mają do czynienia z PostgreSQL - Artykuł Yunis Said [5] omawia konfigurację na Ubuntu. Mimo to zarysowuje powierzchnię, podczas gdy mój poprzedni artykuł koncentruje się na kombinacji PostgreSQL z rozszerzeniem GIS PostGIS [6]. Opis tutaj podsumowuje wszystkie kroki, których potrzebujemy do tej konkretnej konfiguracji.

# apt Zainstaluj PostgreSQL-13 PostgreSQL-Client-13

Następnie sprawdź, czy PostgreSQL działa za pomocą polecenia PG_ISReady. Jest to narzędzie, które jest częścią pakietu PostgreSQL.

# pg_isReady
/var/run/postgreSQL: 5432 - Połączenia są akceptowane

Powyższe wyjście pokazuje, że PostgreSQL jest gotowy i czeka na połączenia przychodzące w porcie 5432. O ile nie ustawiono inaczej, jest to standardowa konfiguracja. Następnym krokiem jest ustawienie hasła dla Użytkownika UNIX Postgres:

# Passwd Postgres

Należy pamiętać, że PostgreSQL ma własną bazę danych użytkowników, podczas gdy administracyjny użytkownik PostgreSQL Postgres nie ma jeszcze hasła. Poprzedni krok musi być również wykonany dla PostgreSQL Postgres:

# Su - Postgres
$ PSQL -C „Zmień postgres użytkownika za pomocą hasła„ hasło ”;”

Dla uproszczenia wybrane hasło jest tylko hasłem i powinno zostać zastąpione bezpieczniejszym frazą hasła na systemach innych niż testowanie. Polecenie powyżej zmieni wewnętrzną tabelę użytkowników PostgreSQL. Pamiętaj o różnych znakach cytatowych - hasło w pojedynczych cytatach i zapytanie SQL w podwójnych cytatach, aby zapobiec interpreterowi powłoki oceny polecenia w niewłaściwy sposób. Dodaj także półkolis po zapytaniu SQL przed podwójnymi cytatami na końcu polecenia.

Następnie, ze względów administracyjnych, połącz się z PostgreSQL jako postgres użytkownika z wcześniej utworzonym hasłem. Polecenie nazywa się PSQL:

$ psql

Połączenie z Apache Solr do bazy danych PostgreSQL odbywa się jako Solr użytkownika. Dodajmy więc Solr użytkownika PostgreSQL i ustaw dla niego odpowiednie hasło Solr za jednym razem:

$ Utwórz użytkownika Solr z PASSWD „Solr”;

Dla uproszczenia wybrane hasło jest po prostu solr i powinno zostać zastąpione bezpieczniejszym frazą hasła na systemach, które są w produkcji.

Krok 2: Przygotowanie struktury danych

Aby przechowywać i pobierać dane, potrzebna jest odpowiednia baza danych. Poniższe polecenie tworzy bazę danych samochodów, która należy do użytkownika Solr i będzie używane później.

$ Utwórz samochody bazy danych z właścicielem = solr;

Następnie połącz się z nowo utworzonymi samochodami bazy danych jako użytkownika Solr. Opcja -D (krótka opcja dla -dbname) definiuje nazwę bazy danych i -u (krótka opcja dla -username) Nazwa użytkownika PostgreSQL.

$ psql -d samochody -u solr

Pusta baza danych nie jest przydatna, ale tabele ustrukturyzowane z zawartością. Utwórz strukturę samochodów stołowych w następujący sposób:

$ Utwórz samochody stołowe (
Id int,
Make Varchar (100),
Model Varchar (100),
Opis Varchar (100),
Color Varchar (50),
cena int
);

Samochody tabel zawierają sześć pól danych - id (liczba całkowita), Make (ciąg długości 100), model (ciąg długości 100), opis (ciąg długości 100), kolor (ciąg długości 50) i Cena (liczba całkowita). Aby niektóre przykładowe dane dodają następujące wartości do samochodów tabeli jako instrukcje SQL:

$ Wstaw do samochodów (id, marka, model, opis, kolor, cena)
Wartości (1, „BMW”, „x5”, „Cool Car”, „Gray”, 45000);
$ Wstaw do samochodów (id, marka, model, opis, kolor, cena)
Wartości (2, „audi”, „Quattro”, „Race Car”, „White”, 30000);

Rezultatem są dwa wpisy reprezentujące szary BMW X5, który kosztuje 45000 USD, opisany jako fajny samochód, oraz biały samochód wyścigowy Audi Quattro, który kosztuje 30000 USD.

Następnie wyjdź z konsoli PostgreSQL za pomocą \ q lub wyrzuć.

$ \ q

Krok 3: Podłączenie PostgreSQL z Apache Solr

Połączenie PostgreSQL i Apache Solr opiera się na dwóch elementach oprogramowania - sterowniku Java dla sterownika PostgreSQL o nazwie Java Database Connectivity (JDBC) oraz rozszerzeniem konfiguracji serwera Solr. Sterownik JDBC dodaje interfejs Java do PostgreSQL, a dodatkowy wpis w konfiguracji Solr mówi Solr, jak połączyć się z PostgreSQL za pomocą sterownika JDBC.

Dodanie sterownika JDBC odbywa się jako root użytkownika w następujący sposób, i instaluje sterownik JDBC z repozytorium pakietu Debian:

# apt-get instaluj libpostgresql-jdbc-java

Po stronie Apache Solr musi istnieć również odpowiedni węzeł. Jeśli jeszcze nie zrobiono, jako Użytkownik UNIX, utwórz samochody węzłowe w następujący sposób:

$ bin/solr twórz samochody -c

Następnie rozszerz konfigurację Solr dla nowo utworzonego węzła. Dodaj poniższe wiersze do pliku/var/solr/data/cars/conf/solrconfig.XML:

DB-Data-Config.XML

Ponadto utwórz plik/var/solr/data/cars/conf/data-config.XML i przechowuj w nim następujące treści:

Powyższe wiersze odpowiadają poprzednim ustawieniom i zdefiniuj sterownik JDBC, podaj port 5432, aby połączyć się z PostgreSQL DBMS jako Solr użytkownika z odpowiednim hasłem, i ustaw zapytanie SQL do wykonania z Postgresql. Dla uproszczenia jest to instrukcja wybrana, która chwyta całą zawartość tabeli.

Następnie uruchom ponownie serwer Solr, aby aktywować zmiany. Gdy root użytkownika wykonuje następujące polecenie:

# Systemctl restart solr

Ostatnim krokiem jest na przykład import danych, używając interfejsu internetowego Solr. Pole wyboru węzłów wybiera samochody węzłowe, a następnie z menu węzła poniżej Wpis Data Wymport, a następnie wybór pełnego importu z menu poleceń do niego. Na koniec naciśnij przycisk Wykonaj. Poniższy rysunek pokazuje, że Solr z powodzeniem zindeksował dane.

Krok 4: Zapytanie danych z DBMS

Poprzedni artykuł [3] dotyczy szczegółowego zapytania do danych, pobierania wyniku i wybierania pożądanego formatu wyjściowego - CSV, XML lub JSON. Zapytanie o dane odbywa się podobnie do tego, czego się nauczyłeś, i nie jest widoczna dla użytkownika żadna różnica. Solr wykonuje całą pracę za scenami i komunikuje się z PostgreSQL DBMS podłączonym zgodnie z definicją w wybranym rdzeniu lub klastrze Solr.

Wykorzystanie Solr nie zmienia się, a zapytania można przesyłać za pośrednictwem interfejsu administratora Solr lub za pomocą curl lub wget na linii poleceń. Wysyłasz żądanie GET z określonym adresem URL na serwerze Solr (zapytanie, aktualizacja lub usuwanie). Solr przetwarza żądanie za pomocą DBMS jako jednostki pamięci i zwraca wynik żądania. Dalej, przetwarzaj odpowiedź lokalnie.

Poniższy przykład pokazuje wyjście zapytania „/Wybierz?Q =*. *”W formacie JSON w interfejsie administratora Solr. Dane są pobierane z samochodów bazy danych, które utworzyliśmy wcześniej.

Wniosek

W tym artykule pokazano, jak zapytać o bazę danych PostgreSQL od Apache Solr i wyjaśnia odpowiednią konfigurację. W następnej części tej serii nauczysz się połączyć kilka węzłów Solr w klaster Solr.

O Autorach

Jacqui Kabeta jest ekologiem, zapalonym badaczem, trenerem i mentorem. W kilku krajach afrykańskich pracowała w środowisku IT i organizacji pozarządowych.

Frank Hofmann jest programistą IT, trenerem i autorem i woli pracować z Berlina, Genewy i Kapsztadu. Współautor książki zarządzania pakietami Debian dostępna w DPMB.org

Linki i referencje

  • [1] Apache Solr, https: // Lucene.Apache.org/solr/
  • [2] Frank Hofmann i Jacqui Kabeta: Wprowadzenie do Apache Solr. Część 1, https: // linuxhint.com/apache-solr-setup-a-węzeł/
  • [3] Frank Hofmann i Jacqui Kabeta: Wprowadzenie do Apache Solr. Zapytanie danych. Część 2, http: // linuxhint.com
  • [4] Postgresql, https: // www.PostgreSQL.org/
  • [5] Younis powiedział: Jak zainstalować i skonfigurować bazę danych PostgreSQL na Ubuntu 20.04, https: // linuxhint.com/install_postgresql_-ubuntu/
  • [6] Frank Hofmann: Konfigurowanie PostgreSQL z PostGis na Debian GNU/Linux 10, https: // Linuxhint.com/setup_postgis_debian_postgres/
  • [7] Ingres, Wikipedia, https: // en.Wikipedia.org/wiki/ingres_ (baza danych)