Apache Solr

Introduzione ad Apache Solr. Parte 3 Connessione a PostgreSQL

Introduzione ad Apache Solr. Parte 3 Connessione a PostgreSQL
Apache Solr [1] è un framework per motori di ricerca scritto in Java e basato sulla libreria di ricerca Lucene [6]. Nei due articoli precedenti, abbiamo installato Apache Solr sulla Debian GNU/Linux 11, di prossima uscita, avviato un singolo core di dati, caricato dati di esempio, dimostrato come interrogare i dati di output in modi diversi e post-elaborazione è.

Questo è un articolo di follow-up ai due precedenti [2,3]. Finora, abbiamo caricato i dati indicizzati nell'archiviazione di Apache Solr e abbiamo interrogato i dati su questo. Ora imparerai come connettere il sistema di gestione di database relazionali PostgreSQL [4] ad Apache Solr e come eseguire una ricerca in esso utilizzando le funzionalità di Solr. Ciò rende necessario eseguire diversi passaggi descritti di seguito in modo più dettagliato: configurare PostgreSQL, preparare una struttura dati in un database PostgreSQL e connettere PostgreSQL ad Apache Solr ed eseguire la nostra ricerca.

Passaggio 1: configurazione di PostgreSQL

Informazioni su PostgreSQL: una breve informazione

PostgreSQL è un ingegnoso sistema di gestione di database relazionali a oggetti. È disponibile per l'uso e ha subito uno sviluppo attivo da oltre 30 anni. Proviene dall'Università della California, dove è visto come il successore di Ingres [7].

Fin dall'inizio, è disponibile sotto open-source (GPL), gratuito da usare, modificare e distribuire. È ampiamente utilizzato e molto popolare nel settore. PostgreSQL è stato inizialmente progettato per funzionare solo su sistemi UNIX/Linux e successivamente è stato progettato per funzionare su altri sistemi come Microsoft Windows, Solaris e BSD. L'attuale sviluppo di PostgreSQL viene svolto in tutto il mondo da numerosi volontari.

Configurazione di PostgreSQL

Se non lo hai ancora fatto, installa il server e il client PostgreSQL localmente, ad esempio, su Debian GNU/Linux come descritto di seguito usando apt. Due articoli trattano di PostgreSQL - L'articolo di Yunis Said [5] discute la configurazione su Ubuntu. Tuttavia, gratta solo la superficie mentre il mio articolo precedente si concentra sulla combinazione di PostgreSQL con l'estensione GIS PostGIS [6]. La descrizione qui riassume tutti i passaggi necessari per questa particolare configurazione.

# apt install postgresql-13 postgresql-client-13

Quindi, verifica che PostgreSQL sia in esecuzione con l'aiuto del comando pg_isready. Questa è un'utilità che fa parte del pacchetto PostgreSQL.

# pg_isready
/var/run/postgresql:5432 - Le connessioni sono accettate

L'output sopra mostra che PostgreSQL è pronto e in attesa di connessioni in entrata sulla porta 5432. Se non diversamente impostato, questa è la configurazione standard. Il prossimo passo è impostare la password per l'utente UNIX Postgres:

# passwd Postgres

Tieni presente che PostgreSQL ha il proprio database utente, mentre l'utente amministrativo PostgreSQL Postgres non ha ancora una password. Il passaggio precedente deve essere eseguito anche per l'utente PostgreSQL Postgres:

# su - Postgres
$ psql -c "ALTER USER Postgres CON PASSWORD 'password';"

Per semplicità, la password scelta è solo una password e dovrebbe essere sostituita da una frase di password più sicura su sistemi diversi dal testing. Il comando sopra modificherà la tabella utente interna di PostgreSQL. Prestare attenzione alle diverse virgolette: la password tra virgolette singole e la query SQL tra virgolette doppie per evitare che l'interprete della shell valuti il ​​comando in modo errato. Inoltre, aggiungi un punto e virgola dopo la query SQL prima delle virgolette alla fine del comando.

Successivamente, per motivi amministrativi, connettiti a PostgreSQL come utente Postgres con la password precedentemente creata. Il comando si chiama psql:

$ psql

La connessione da Apache Solr al database PostgreSQL viene eseguita come utente solr. Quindi, aggiungiamo l'utente solr PostgreSQL e impostiamo un solr password corrispondente per lui in una volta sola:

$ CREA UTENTE solr CON PASSWD 'solr';

Per semplicità, la password scelta è solo solr e dovrebbe essere sostituita da una frase password più sicura sui sistemi che sono in produzione.

Passaggio 2: preparazione di una struttura dati

Per archiviare e recuperare i dati, è necessario un database corrispondente. Il comando seguente crea un database di auto che appartiene all'utente solr e verrà utilizzato in seguito.

$ CREATE DATABASE automobili CON PROPRIETARIO = solr;

Quindi, connettiti al database delle auto appena creato come utente solr. L'opzione -d (opzione breve per -dbname) definisce il nome del database e -U (opzione breve per -username) il nome dell'utente PostgreSQL.

$ psql -d auto -U solr

Un database vuoto non è utile, ma tabelle strutturate con contenuti sì. Creare la struttura delle carrozze da tavolo come segue:

$ CREA TABELLA auto (
ID int,
crea varchar(100),
modello varchar(100),
descrizione varchar(100),
colore varchar(50),
prezzo intero
);

Le auto della tabella contengono sei campi dati: id (intero), make (una stringa di lunghezza 100), model (una stringa di lunghezza 100), description (una stringa di lunghezza 100), color (una stringa di lunghezza 50) e prezzo (intero). Per avere alcuni dati di esempio, aggiungi i seguenti valori alle table car come istruzioni SQL:

$ INSERIRE NELLE auto (id, marca, modello, descrizione, colore, prezzo)
VALORI (1, 'BMW', 'X5', 'Auto fredda', 'grigio', 45000);
$ INSERIRE NELLE auto (id, marca, modello, descrizione, colore, prezzo)
VALORI (2, 'Audi', 'Quattro', 'auto da corsa', 'bianco', 30000);

Il risultato sono due voci che rappresentano una BMW X5 grigia che costa 45000 USD, descritta come un'auto fantastica, e un'auto da corsa bianca Audi Quattro che costa 30000 USD.

Quindi, esci dalla console di PostgreSQL usando \q o esci.

$ \q

Passaggio 3: connessione di PostgreSQL con Apache Solr

La connessione di PostgreSQL e Apache Solr si basa su due software: un driver Java per PostgreSQL chiamato driver Java Database Connectivity (JDBC) e un'estensione per la configurazione del server Solr. Il driver JDBC aggiunge un'interfaccia Java a PostgreSQL e la voce aggiuntiva nella configurazione di Solr dice a Solr come connettersi a PostgreSQL usando il driver JDBC.

L'aggiunta del driver JDBC viene eseguita come utente root come segue e installa il driver JDBC dal repository dei pacchetti Debian:

# apt-get install libpostgresql-jdbc-java

Sul lato Apache Solr, deve esistere anche un nodo corrispondente. Se non lo hai ancora fatto, come utente UNIX solr, crea le auto del nodo come segue:

$ bin/solr create -c auto

Successivamente, estendi la configurazione Solr per il nodo appena creato. Aggiungi le righe sottostanti al file /var/solr/data/cars/conf/solrconfig.xml:

db-data-config.xml

Inoltre, crea un file /var/solr/data/cars/conf/data-config.xml e memorizza il seguente contenuto al suo interno:

Le righe sopra corrispondono alle impostazioni precedenti e definiscono il driver JDBC, specificare la porta 5432 per connettersi al DBMS PostgreSQL come utente solr con la password corrispondente e impostare la query SQL da eseguire da PostgreSQL. Per semplicità, è un'istruzione SELECT che cattura l'intero contenuto della tabella.

Quindi, riavvia il server Solr per attivare le modifiche. Come utente root eseguire il seguente comando:

# systemctl riavvia solr

L'ultimo passaggio è l'importazione dei dati, ad esempio utilizzando l'interfaccia web di Solr. La casella di selezione del nodo sceglie le auto del nodo, quindi dal menu Nodo sotto la voce Importa dati seguito dalla selezione di importazione completa dal menu Comando a destra di esso. Infine, premi il pulsante Esegui. La figura seguente mostra che Solr ha indicizzato con successo i dati.

Passaggio 4: interrogazione dei dati dal DBMS

L'articolo precedente [3] si occupa dell'interrogazione dei dati in dettaglio, del recupero del risultato e della selezione del formato di output desiderato: CSV, XML o JSON. L'interrogazione dei dati viene eseguita in modo simile a quanto appreso in precedenza e nessuna differenza è visibile all'utente. Solr fa tutto il lavoro dietro le quinte e comunica con il DBMS PostgreSQL connesso come definito nel core o cluster Solr selezionato.

L'utilizzo di Solr non cambia e le query possono essere inviate tramite l'interfaccia di amministrazione di Solr o utilizzando curl o wget sulla riga di comando. Invii una richiesta Get con un URL specifico al server Solr (richiesta, aggiorna o elimina). Solr elabora la richiesta utilizzando il DBMS come unità di memorizzazione e restituisce il risultato della richiesta. Successivamente, post-elabora la risposta localmente.

L'esempio seguente mostra l'output della query "/select?q=*. *” in formato JSON nell'interfaccia di amministrazione di Solr. I dati vengono recuperati dal database delle auto che abbiamo creato in precedenza.

Conclusione

Questo articolo mostra come interrogare un database PostgreSQL da Apache Solr e spiega la configurazione corrispondente. Nella parte successiva di questa serie imparerai come combinare diversi nodi Solr in un cluster Solr.

Riguardo agli Autori

Jacqui Kabeta è un ambientalista, avido ricercatore, formatore e mentore. In diversi paesi africani, ha lavorato nel settore IT e negli ambienti delle ONG.

Frank Hofmann è uno sviluppatore IT, formatore e autore e preferisce lavorare a Berlino, Ginevra e Città del Capo. Coautore del libro sulla gestione dei pacchetti Debian disponibile da dpmb.organizzazione

Link e riferimenti

Il cursore salta o si sposta in modo casuale durante la digitazione in Windows 10
Se scopri che il cursore del mouse salta o si sposta da solo, automaticamente, in modo casuale durante la digitazione nel laptop o nel computer Window...
Come invertire la direzione di scorrimento del mouse e dei touchpad in Windows 10
Topo e Touchpads non solo rende l'elaborazione semplice, ma anche più efficiente e richiede meno tempo. Non possiamo immaginare una vita senza questi ...
Come modificare il puntatore del mouse e le dimensioni, il colore e lo schema del cursore su Windows 10
Il puntatore del mouse e il cursore in Windows 10 sono aspetti molto importanti del sistema operativo. Questo si può dire anche per altri sistemi oper...