Parte 1: impostare un singolo nodo
Oggi, memorizzare elettronicamente i tuoi documenti o dati su un dispositivo di archiviazione è sia semplice che semplice, è comparabilmente economico, anche. In uso è un riferimento a fileName che ha lo scopo di descrivere di cosa si tratta il documento. In alternativa, i dati vengono mantenuti in un sistema di gestione del database (DBMS) come PostgreSQL, MariaDB o MongoDB per nominare solo alcune opzioni. Diversi mezzi di archiviazione sono collegati a livello locale o remoto al computer, come stick USB, disco rigido interno o esterno, archiviazione collegata in rete (NAS), archiviazione cloud o GPU/flash, come in un NVIDIA V100 [10].
Al contrario, il processo inverso, trovare i documenti giusti in una raccolta di documenti, è piuttosto complesso. Richiede principalmente di rilevare il formato di file senza guasto, indicizzare il documento ed estrarre i concetti chiave (classificazione del documento). È qui che entra in gioco il framework Apache Solr. Offre un'interfaccia pratica per eseguire i passaggi menzionati: costruire un indice di documento, accettare query di ricerca, fare la ricerca effettiva e restituire un risultato di ricerca. Apache Solr costituisce quindi il core per una ricerca efficace su un database o su un silo documento.
In questo articolo, imparerai come funziona Apache Solr, come impostare un singolo nodo, documenti indicizzati, fare una ricerca e recuperare il risultato.
Gli articoli di follow-up si basano su questo e, in essi, discutiamo altri casi d'uso più specifici come l'integrazione di un DBMS PostgreSQL come fonte di dati o bilanciamento del carico su più nodi.
Informazioni sul progetto Apache Solr
Apache Solr è un framework del motore di ricerca basato sul potente server di indice di ricerca Lucene [2]. Scritto in Java, è mantenuto sotto l'ombrello della Apache Software Foundation (ASF) [6]. È disponibile liberamente con la licenza Apache 2.
L'argomento "Trova di nuovo documenti e dati" svolge un ruolo molto importante nel mondo del software e molti sviluppatori lo affrontano intensamente. Il sito Web Awesomeopensource [4] elenca più di 150 progetti open source del motore di ricerca. All'inizio del 2021, Elasticsearch [8] e Apache Solr/Lucene sono i due migliori cani quando si tratta di cercare set di dati più grandi. Sviluppare il tuo motore di ricerca richiede molta conoscenza, Frank lo fa con la biblioteca Advanced Search [3] con sede a Python dal 2002.
Impostazione di Apache Solr:
L'installazione e il funzionamento di Apache Solr non sono complicate, è semplicemente un'intera serie di passaggi da svolgere da te. Consenti circa 1 ora per il risultato della prima query di dati. Inoltre, Apache Solr non è solo un progetto di hobby, ma è anche utilizzato in un ambiente professionale. Pertanto, l'ambiente del sistema operativo scelto è progettato per l'uso a lungo termine.
Come ambiente di base per questo articolo, utilizziamo Debian GNU/Linux 11, che è la prossima versione di Debian (all'inizio del 2021) e dovrebbe essere disponibile a metà del 201021. Per questo tutorial, ci aspettiamo di averlo già installato, come il sistema nativo, in una macchina virtuale come VirtualBox o un contenitore AWS.
Oltre ai componenti di base, è necessario installare i seguenti pacchetti software sul sistema:
Questi pacchetti sono componenti standard di Debian GNU/Linux. Se non ancora installato, puoi postarli in una volta come utente con diritti amministrativi, ad esempio root o tramite sudo, mostrato come segue:
# Apt-get Installa Curl Default-Java Libcommons-cli-java libxerces2-java libtika-java
Avendo preparato l'ambiente, il secondo passo è l'installazione di Apache Solr. A partire da ora, Apache Solr non è disponibile come pacchetto Debian regolare. Pertanto, è necessario recuperare Apache Solr 8.8 Dalla sezione Download del sito Web del progetto [9] prima. Usa il comando WGET di seguito per archiviarlo nella directory /TMP del sistema:
$ wget -o/tmp https: // downloads.Apache.Org/Lucene/Solr/8.8.0/Solr-8.8.0.TGZ
Lo switch -o accorcia -output -documento e rende wget archiviare il catrame recuperato.File GZ nella directory data. L'archivio ha una dimensione di circa 190 m. Successivamente, disimballare l'archivio nella directory /opt usando il catrame. Di conseguenza, troverai due sottodirectory - /opt /solr e /opt /solr -8.8.0, mentre /opt /solr è impostato come collegamento simbolico a quest'ultimo. Apache Solr viene fornito con uno script di configurazione che esegui dopo, è il seguente:
# /opt /solr-8.8.0/bin/install_solr_service.sh
Ciò si traduce nella creazione dell'utente Linux SOLR funziona nel servizio Solr più la sua home directory under /var /solr stabilisce il servizio Solr, aggiunto con i suoi nodi corrispondenti, e avvia il servizio Solr sulla porta 8983. Questi sono i valori predefiniti. Se non sei soddisfatto, puoi modificarli durante l'installazione o persino latersince lo script di installazione accetta switch corrispondenti per le regolazioni di configurazione. Ti consigliamo di dare un'occhiata alla documentazione di Apache Solr in merito a questi parametri.
Il software Solr è organizzato nelle seguenti directory:
In modo più dettagliato, puoi leggere queste directory nella documentazione Apache Solr [12].
Gestire Apache Solr:
Apache Solr funziona come servizio in background. È possibile avviarlo in due modi, utilizzando SystemCtl (prima riga) come utente con autorizzazioni amministrative o direttamente dalla directory Solr (seconda riga). Elenchiamo entrambi i comandi del terminale di seguito:
# SystemCtl Start Solr
$ solr/bin/solr start
L'arresto di Apache Solr viene eseguito allo stesso modo:
# SystemCtl Stop Solr
$ solr/bin/solr stop
Allo stesso modo va nel riavvio del servizio Apache Solr:
# SystemCtl Riavvia Solr
$ Solr/Bin/Solr Riavvia
Inoltre, lo stato del processo Apache Solr può essere visualizzato come segue:
# SystemCtl Stato Solr
$ Solr/Bin/Solr Status
L'output elenca il file di servizio avviato, sia il timestamp corrispondente che i messaggi di registro. La figura seguente mostra che il servizio Apache Solr è stato avviato sulla porta 8983 con il processo 632. Il processo è in esecuzione con successo per 38 minuti.
Per vedere se il processo Apache Solr è attivo, è anche possibile verificare usando il comando PS in combinazione con GREP. Ciò limita l'output PS a tutti i processi Apache Solr attualmente attivi.
# PS Ax | grep -color solr
La figura seguente lo dimostra per un singolo processo. Vedi la chiamata di Java che è accompagnata da un elenco di parametri, ad esempio le porte di utilizzo della memoria (512m) da ascoltare su 8983 per le query, 7983 per le richieste di arresto e il tipo di connessione (HTTP).
Aggiunta di utenti:
I processi Apache Solr vengono eseguiti con un utente specifico chiamato Solr. Questo utente è utile nella gestione dei processi SOLR, nel caricamento dei dati e nell'invio di richieste. All'impostazione, l'utente Solr non ha una password e dovrebbe avere una per accedere per procedere ulteriormente. Imposta una password per l'utente Solr come il root dell'utente, viene mostrata come segue:
# Passwd Solr
Amministrazione Solr:
La gestione di Apache Solr viene eseguita utilizzando la dashboard Solr. Questo è accessibile tramite browser Web da http: // localhost: 8983/solr. La figura seguente mostra la vista principale.
A sinistra, si vede il menu principale che ti porta alle sottosezioni per la registrazione, l'amministrazione dei core Solr, la configurazione Java e le informazioni sullo stato. Scegli il core desiderato utilizzando la casella di selezione sotto il menu. Sul lato destro del menu, vengono visualizzate le informazioni corrispondenti. La voce del menu dashboard mostra ulteriori dettagli relativi al processo Apache Solr, nonché al carico corrente e all'utilizzo della memoria.
Si prega di sapere che il contenuto della dashboard cambia a seconda del numero di nuclei solr e dei documenti che sono stati indicizzati. Le modifiche influiscono sia sulle voci di menu che le informazioni corrispondenti visibili a destra.
Comprendere come funzionano i motori di ricerca:
Semplicemente, i motori di ricerca analizzano i documenti, li classificano e ti consentono di effettuare una ricerca in base alla loro categorizzazione. Fondamentalmente, il processo è costituito da tre fasi, che sono definite come striscianti, indicizzazioni e classifica [13].
Strisciando è la prima fase e descrive un processo attraverso il quale viene raccolto nuovi e aggiornati contenuti. Il motore di ricerca utilizza robot che sono anche noti come ragni o crawler, da cui il termine strisciante da passare attraverso i documenti disponibili.
La seconda fase si chiama indicizzazione. Il contenuto precedentemente raccolto è reso ricercabile trasformando i documenti originali in un formato che il motore di ricerca comprende. Parole chiave e concetti vengono estratti e archiviati in database (enormi).
La terza fase si chiama classifica e descrive il processo di smistamento dei risultati di ricerca in base alla loro rilevanza con una query di ricerca. È comune visualizzare i risultati in ordine decrescente in modo che il risultato che abbia la massima rilevanza per la query del ricercatore arriva per primo.
Apache Solr funziona in modo simile al processo a tre fasi precedentemente descritto. Come il popolare motore di ricerca Google, Apache Solr utilizza una sequenza di documenti di raccolta, archiviazione e indicizzazione di diverse fonti e li rende disponibili/ricercabili in tempo reale.
Apache Solr utilizza modi diversi per indicizzare i documenti tra cui i seguenti [14]:
Un gestore di query viene utilizzato in Apache Solr quando viene inviata una richiesta di ricerca. Il gestore delle query analizza la query data in base allo stesso concetto del gestore indice per abbinare la query e i documenti precedentemente indicizzati. Le partite sono classificate in base alla loro adeguatezza o rilevanza. Di seguito è dimostrato un breve esempio di interrogazione.
Caricamento di documenti:
Per motivi di semplicità, utilizziamo un set di dati di esempio per il seguente esempio già fornito da Apache Solr. Il caricamento dei documenti viene eseguito come Solr utente. Il passaggio 1 è la creazione di un nucleo con il nome TechProducts (per una serie di elementi tecnologici).
$ solr/bin/solr create -c techproducts
Va tutto bene se vedi il messaggio "Creato" Core "TechProducts" ". Il passaggio 2 è l'aggiunta di dati (dati XML da ExampleDocs) ai techprodutti core precedentemente creati. In uso è il post dello strumento parametrizzato da -c (nome del core) e i documenti da caricare.
$ solr/bin/post -c TechProducts Solr/Esempio/ExampleDocs/*.XML
Ciò comporterà l'output mostrato di seguito e conterrà l'intera chiamata più i 14 documenti che sono stati indicizzati.
Inoltre, la dashboard mostra le modifiche. Una nuova voce denominata TechProducts è visibile nel menu a discesa sul lato sinistro e il numero di documenti corrispondenti è cambiato sul lato destro. Sfortunatamente, non è possibile una vista dettagliata dei set di dati grezzi.
Nel caso in cui il core/raccolta debba essere rimosso, utilizzare il seguente comando:
$ solr/bin/solr elimina -c techproducts
Interrogazione dei dati:
Apache Solr offre due interfacce ai dati di query: tramite la dashboard basata sul Web e la linea di comando. Spiegheremo entrambi i metodi di seguito.
L'invio di query tramite Solr Dashboard viene eseguita come segue:
La linea di comando accetta la stessa domanda della dashboard. La differenza è che devi conoscere il nome dei campi di query. Per inviare la stessa domanda come sopra, devi eseguire il seguente comando in un terminale:
$ CURL
http: // localhost: 8983/solr/techproducts/query?Q = "Manu": "Belkin
L'output è in formato JSON, come mostrato di seguito. Il risultato è costituito da un'intestazione di risposta e dalla risposta effettiva. La risposta è composta da due set di dati.
Avvolgendo:
Congratulazioni! Hai raggiunto il primo stadio con successo. L'infrastruttura di base è impostata e hai imparato a caricare e interrogare documenti.
Il prossimo passo coprirà come perfezionare la query, formulare query più complesse e comprendere i diversi moduli Web forniti dalla pagina di query Apache Solr. Inoltre, discuteremo di come post-elaborazione del risultato della ricerca utilizzando diversi formati di output come XML, CSV e JSON.
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