Questo è un articolo di follow-up per i due precedenti [2,3]. Finora abbiamo caricato i dati indicizzati nell'archiviazione Apache Solr e abbiamo interrogato i dati su questo. Ora imparerai come collegare il sistema di gestione del database relazionale Postgresql [4] ad Apache Solr e fare una ricerca in esso utilizzando le capacità di Solr. Ciò rende necessario eseguire diversi passaggi descritti di seguito in modo più dettagliato: impostazione di PostgreSQL, preparazione di una struttura di dati in un database PostgreSQL e collegamento di PostgreSQL ad Apache Solr e fare la nostra ricerca.
Passaggio 1: impostare PostgreSQL
Informazioni su PostgreSQL - Una breve informazione
PostgreSQL è un ingegnoso sistema di gestione del database oggetto-relazionale. È disponibile per l'uso e ha subito uno sviluppo attivo da oltre 30 anni. Origi l'Università della California, dove è visto come il successore di Ingres [7].
Dall'inizio, è disponibile in Open-Source (GPL), gratuito da utilizzare, modificare e distribuire. È ampiamente usato e molto popolare nel settore. PostgreSQL è stato inizialmente progettato per funzionare solo su sistemi UNIX/Linux ed è stato successivamente progettato per funzionare su altri sistemi come Microsoft Windows, Solaris e BSD. L'attuale sviluppo di PostgreSQL è fatto in tutto il mondo da numerosi volontari.
Setup PostgreSQL
Se non ancora fatto, installare il server PostgreSQL e il client localmente, ad esempio, su Debian GNU/Linux come descritto di seguito utilizzando APT. Due articoli si occupano di PostgreSQL - L'articolo di Yunis Said [5] discute la configurazione su Ubuntu. Tuttavia, graffia solo la superficie mentre il mio articolo precedente si concentra sulla combinazione di PostgreSQL con il GIS Extension Postgis [6]. La descrizione qui riassume tutti i passaggi di cui abbiamo bisogno per questa particolare configurazione.
# APT Installa PostgreSQL-13 PostgreSQL-Client-1
Quindi, verificare 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 arrivo sulla porta 5432. Salvo diversa impostazione, questa è la configurazione standard. Il passaggio successivo è l'impostazione della password per l'utente UNIX Postgres:
# passwd postgres
Tieni presente che PostgreSQL ha il proprio database degli utenti, mentre l'utente amministrativo Postgresql Postgres non ha ancora una password. Il passaggio precedente deve essere fatto anche per l'utente Postgresql Postgres:
# SU - PostgresPer semplicità, la password scelta è solo una password e dovrebbe essere sostituita da una frase di password più sicura su sistemi diversi dal test. Il comando sopra modificherà la tabella utente interna di PostgreSQL. Sii consapevole delle diverse virgolette: la password in singoli citazioni e la query SQL in doppie citazioni per impedire all'interprete di shell di valutare il comando nel modo sbagliato. Inoltre, aggiungi un punto e virgola dopo la query SQL prima delle doppie citazioni alla fine del comando.
Successivamente, per motivi amministrativi, connettiti a PostgreSQL come utente Postgres con la password precedentemente creata. Il comando si chiama psql:
$ PSQLLa connessione da Apache Solr al database PostgreSQL viene eseguita come Solr utente. Quindi, aggiungiamo l'utente PostgreSQL Solr e impostiamo una password corrispondente Solr per lui in una volta:
$ Crea Solr utente con patwd 'solr';
Per semplicità, la password scelta è solo SOLR e dovrebbe essere sostituita da una frase di password più sicura sui sistemi che sono in produzione.
Passaggio 2: preparazione di una struttura dei dati
Per archiviare e recuperare i dati, è necessario un database corrispondente. Il comando di seguito crea un database di auto che appartiene all'utente Solr e verrà utilizzato in seguito.
$ Crea auto di database con proprietario = solr;
Quindi, connettiti alle auto del database appena create come utente Solr. L'opzione -D (breve opzione per -dbname) definisce il nome del database e -u (breve opzione per -Username) il nome dell'utente PostgreSQL.
$ Psql -d auto -u solrUn database vuoto non è utile, ma le tabelle strutturate con contenuti lo fanno. Crea la struttura delle auto da tavolo come segue:
$ Create auto da tavolo (Le auto della tabella contengono sei campi di dati - id (intero), make (una stringa di lunghezza 100), modello (una stringa di lunghezza 100), descrizione (una stringa di lunghezza 100), colore (una stringa di lunghezza 50) e Prezzo (intero). Per avere alcuni dati di esempio aggiungere i seguenti valori alle auto della tabella come istruzioni SQL:
$ Insert in auto (id, make, modello, descrizione, colore, prezzo)Il risultato sono due voci che rappresentano una BMW X5 grigia che costa 45000 USD, descritta come un'auto fresca, e un'auto da corsa bianca Audi Quattro che costa 30000 USD.
Quindi, esci dalla console PostgreSQL usando \ Q, o smettila.
$ \ qPassaggio 3: collegamento di PostgreSQL con Apache Solr
La connessione di PostgreSQL e Apache Solr si basa su due software: un driver Java per PostgreSQL chiamato driver di connettività di database Java (JDBC) e un'estensione alla configurazione Solr Server. Il driver JDBC aggiunge un'interfaccia Java a PostgreSQL e la voce aggiuntiva nella configurazione Solr indica a Solr come connettersi a PostgreSQL utilizzando il driver JDBC.
L'aggiunta del driver JDBC viene eseguita come root dell'utente come segue e installa il driver JDBC dal repository dei pacchetti Debian:
# Apt-get Installa libpostgresql-jdbc-javaSul lato Apache Solr, deve esistere anche un nodo corrispondente. Se non ancora fatto, come User Solr UNIX, crea le auto del nodo come segue:
$ bin/solr create -c autoSuccessivamente, estendere la configurazione Solr per il nodo appena creato. Aggiungi le righe seguenti al file/var/solr/data/auto/conf/solrconfig.XML:
db-data-config.XMLInoltre, crea un file/var/solr/data/auto/conf/data-config.XML e memorizza i seguenti contenuti in esso:
Le righe sopra corrispondono alle impostazioni precedenti e definiscono il driver JDBC, specifica la porta 5432 per connettersi ai DBM PostgreSQL come SOLR utente con la password corrispondente e impostare la query SQL da eseguire da PostgreSQL. Per semplicità, è un'affermazione selezionata che afferra l'intero contenuto della tabella.
Quindi, riavvia il server Solr per attivare le modifiche. Come root utente esegui il seguente comando:
# SystemCtl Riavvia SolrL'ultimo passaggio è l'importazione dei dati, ad esempio, utilizzando l'interfaccia Web Solr. La casella di selezione del nodo sceglie le auto del nodo, quindi dal menu del nodo sotto la voce dataimport seguita dalla selezione di full-import dal menu dei comandi ad esso. Infine, premere il pulsante Esegui. La figura seguente mostra che Solr ha indicizzato correttamente i dati.
Passaggio 4: interrogazione dei dati dal DBMS
L'articolo precedente [3] si occupa di interrogare i dati in dettaglio, recuperare il risultato e selezionare il formato di output desiderato - CSV, XML o JSON. La query sui dati viene eseguita in modo simile a quello che hai imparato prima e nessuna differenza è visibile per l'utente. Solr fa tutto il lavoro dietro le quinte e comunica con i DBM PostgreSQL collegati 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 Solr o utilizzando Curl o Wget sulla riga di comando. Invia una richiesta GET con un URL specifico al server Solr (query, aggiornamento o elimina). Solr elabora la richiesta utilizzando DBMS come unità di archiviazione e restituisce il risultato della richiesta. Successivamente, post-processo a livello locale.
L'esempio seguente mostra l'output della query “/Seleziona?Q =*. *"In formato JSON nell'interfaccia di amministrazione Solr. I dati vengono recuperati dalle auto del database che abbiamo creato in precedenza.
Conclusione
Questo articolo mostra come interrogare un database PostgreSQL da Apache Solr e spiega l'installazione corrispondente. Nella prossima parte di questa serie, imparerai come combinare diversi nodi Solr in un cluster Solr.
Riguardo agli Autori
Jacqui Kabeta è un ambientalista, appassionato ricercatore, allenatore e mentore. In diversi paesi africani, ha lavorato nell'industria IT e negli ambienti delle ONG.
Frank Hofmann è uno sviluppatore IT, un trainer e autore e preferisce lavorare da Berlino, Ginevra e Città del Capo. Co-autore del libro di gestione dei pacchetti Debian disponibile da DPMB.org
Collegamenti e riferimenti