Apache Solr

Tutorial Apache Solr

Tutorial Apache Solr
In questa lezione vedremo come possiamo usare Apache Solr per archiviare i dati e come possiamo eseguire varie query su di essi.

Cos'è Apache Solr?

Apache Solr è uno dei database NoSQL più popolari che può essere utilizzato per archiviare dati e interrogarli quasi in tempo reale. È basato su Apache Lucene ed è scritto in Java. Proprio come Elasticsearch, supporta le query di database tramite API REST. Ciò significa che possiamo utilizzare semplici chiamate HTTP e utilizzare metodi HTTP come GET, POST, PUT, DELETE ecc. per accedere ai dati. Fornisce anche un'opzione per ottenere dati sotto forma di XML o JSON tramite le API REST.

Architettura: Apache Solr

Prima di poter iniziare a lavorare con Apache Solr, dobbiamo comprendere i componenti che costituiscono Apache Solr. Diamo un'occhiata ad alcuni componenti che ha:

Architettura di Apache Solr

Nota che solo i componenti principali per Solr sono mostrati nella figura sopra. Comprendiamo anche qui la loro funzionalità:

Iniziare con Apache Solr

Per iniziare a utilizzare Apache Solr, deve essere installato sulla macchina. Per fare ciò, leggi Installa Apache Solr su Ubuntu.

Assicurati di avere un'installazione Solr attiva se vuoi provare gli esempi che presentiamo più avanti nella lezione e la pagina di amministrazione è raggiungibile su localhost:

Pagina iniziale di Apache Solr

Inserimento dati

Per iniziare, consideriamo una Collection in Solr che chiamiamo as linux_hint_collection. Non è necessario definire esplicitamente questa raccolta poiché quando inseriamo il primo oggetto, la raccolta verrà eseguita automaticamente. Proviamo la nostra prima chiamata API REST per inserire un nuovo oggetto nella raccolta denominata linux_hint_collection.

Inserimento dati

curl -X POST -H 'Tipo di contenuto: application/json'
'http://localhost:8983/solr/linux_hint_collection/update/json/docs' --data-binary '

"id": "iduye",
"nome": "Shubham"
'

Ecco cosa otteniamo indietro con questo comando:

Comando per inserire dati in Solr

I dati possono essere inseriti anche utilizzando la Homepage di Solr che abbiamo visto in precedenza. Proviamo questo qui in modo che le cose siano chiare:

Inserisci dati tramite la home page di Solr

Poiché Solr ha un eccellente modo di interagire con le API HTTP RESTful, d'ora in poi dimostreremo l'interazione con il DB utilizzando le stesse API e non ci concentreremo molto sull'inserimento di dati tramite la pagina Web di Solr.

Elenca tutte le raccolte

Possiamo elencare tutte le raccolte in Apache Solr utilizzando anche un'API REST. Ecco il comando che possiamo usare:

Elenca tutte le raccolte

curl http://localhost:8983/solr/admin/collections?action=LIST&wt=json

Vediamo l'output di questo comando:

Vediamo due raccolte qui che esistono nella nostra installazione di Solr.

Ottieni oggetto per ID

Ora, vediamo come possiamo OTTENERE dati dalla raccolta Solr con un ID specifico. Ecco il comando API REST:

Ottieni oggetto per ID

curl http://localhost:8983/solr/linux_hint_collection/get?id=iduye

Ecco cosa otteniamo indietro con questo comando:

Ottieni tutti i dati

Nella nostra ultima API REST, abbiamo interrogato i dati utilizzando un ID specifico. Questa volta, otterremo tutti i dati presenti nella nostra raccolta Solr.

Ottieni oggetto per ID

curl http://localhost:8983/solr/linux_hint_collection/select?q=*:*

Ecco cosa otteniamo indietro con questo comando:

Nota che abbiamo usato '*:*' nel parametro query query. Questo specifica che Solr dovrebbe restituire tutti i dati presenti nella raccolta. Anche se abbiamo specificato che tutti i dati devono essere restituiti, Solr comprende che la raccolta potrebbe contenere una grande quantità di dati e quindi, restituirà solo i primi 10 documenti.

Eliminazione di tutti i dati

Fino ad ora, tutte le API che abbiamo provato utilizzavano un formato JSON. Questa volta proveremo il formato di query XML. L'utilizzo del formato XML è estremamente simile a JSON poiché anche XML è autodescrittivo.

Proviamo un comando per eliminare tutti i dati che abbiamo nella nostra raccolta.

Eliminazione di tutti i dati

curl "http://localhost:8983/solr/linux_hint_collection/update?commit=true" -H "Content-Type: text/xml" --data-binary "*:*"

Ecco cosa otteniamo indietro con questo comando:

Elimina tutti i dati utilizzando la query XML

Ora, se proviamo di nuovo a ottenere tutti i dati, vedremo che nessun dato è disponibile ora:

Ottieni tutti i dati

Conteggio totale degli oggetti

Per un comando CURL finale, vediamo un comando con il quale possiamo trovare il numero di oggetti presenti in un indice. Ecco il comando per lo stesso:

Conteggio totale degli oggetti

curl http://localhost:8983/solr/linux_hint_collection/query?debug=query&q=*:*

Ecco cosa otteniamo indietro con questo comando:

Conta il numero di oggetti

Conclusione

In questa lezione, abbiamo esaminato come possiamo utilizzare Apache Solr e passare le query utilizzando curl sia in formato JSON che XML. Abbiamo anche visto che il pannello di amministrazione di Solr è utile allo stesso modo di tutti i comandi curl che abbiamo studiato.

Vulkan per utenti Linux
Con ogni nuova generazione di schede grafiche, vediamo gli sviluppatori di giochi spingere i limiti della fedeltà grafica e avvicinarsi di un passo al...
OpenTTD vs Simutrans
Creare la tua simulazione di trasporto può essere divertente, rilassante ed estremamente allettante. Ecco perché devi assicurarti di provare quanti pi...
Tutorial OpenTTD
OpenTTD è uno dei giochi di simulazione aziendale più popolari in circolazione. In questo gioco, devi creare una meravigliosa attività di trasporto. T...