Tutorial Apache Solr

Tutorial Apache Solr
In questa lezione, vedremo come possiamo usare Apache Solr per archiviare i dati e come possiamo eseguire varie domande su.

Cos'è Apache Solr

Apache Solr è uno dei database NOSQL più popolari che possono essere utilizzati per archiviare i dati e interrogarli in tempo reale. Si basa su Apache Lucene ed è scritto in Java. Proprio come ElaSticSearch, supporta le query di database tramite API di riposo. Ciò significa che possiamo usare semplici chiamate HTTP e utilizzare metodi HTTP come GET, POST, PUT, ELUTE ETC. per accedere ai dati. Fornisce inoltre un'opzione per ottenere dati sotto forma di XML o JSON attraverso 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 Apache Solr

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

  • Richiedi gestori: Le richieste che un cliente fa a Solr sono gestite da un gestore di richieste. La richiesta può essere qualsiasi cosa, dall'aggiunta di un nuovo record per aggiornare un indice in Solr. I gestori identificano il tipo di richiesta dal metodo HTTP utilizzato con la mappatura delle richieste.
  • Componente di ricerca: Questo è uno dei componenti più importanti per Solr per. Il componente di ricerca si occupa di eseguire operazioni relative alla ricerca come sfocatura, controlli ortografici, query a termine ecc.
  • Parser di query: Questo è il componente che in realtà analizza la query che un cliente passa al gestore delle richieste e rompe una query in più parti che possono essere comprese dal motore sottostante
  • Scrittore di risposta: Questo componente è responsabile della gestione del formato di output per le domande passate al motore. Lo scrittore di risposta ci consente di fornire un output in vari formati come XML, JSON ecc.
  • Analizzatore/tokenizer: Lucene Engine comprende le query sotto forma di più token. Solr analizza la query, la rompe in più token e la passa al motore Lucene.
  • Aggiorna il processore di richiesta: Quando viene eseguita una query e esegue operazioni come l'aggiornamento di un indice e dati ad essa, il componente del processore di richiesta di aggiornamento è responsabile della gestione dei dati nell'indice e della modifica.

Iniziare con Apache Solr

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

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

Homepage di Apache Solr

Inserire dati

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

Inserire dati

Curl -x Post -h 'Content -Type: Application/JSON'
'http: // localhost: 8983/solr/linux_hint_collection/update/json/docs'--data-binary '

"id": "iduye",
"Nome": "Shubham"
'

Ecco cosa torniamo con questo comando:

Comanda di inserire i dati in Solr

I dati possono anche essere inseriti utilizzando la home page di Solr che abbiamo esaminato prima. Proviamo questo qui in modo che le cose siano chiare:

Inserire i dati tramite Homepage di Solr

Poiché Solr ha un ottimo modo di interazione con le API Resful HTTP, dimostreremo l'interazione DB usando le stesse API da ora in poi e non ci concentreremo molto sull'inserimento di dati attraverso la pagina Web Solr.

Elenca tutte le collezioni

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

Elenca tutte le collezioni

Curl http: // localhost: 8983/solr/admin/collezioni?Azioni = Elenco e WT = JSON

Vediamo l'output per questo comando:

Vediamo due collezioni 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 Rest API:

Ottieni oggetto per ID

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

Ecco cosa torniamo 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 torniamo con questo comando:

Si noti che abbiamo usato '*:*' nel parametro di query. Ciò specifica che Solr dovrebbe restituire tutti i dati presenti nella raccolta. Anche se abbiamo specificato che tutti i dati dovrebbero essere restituiti, Solr comprende che la raccolta potrebbe avere una grande quantità di dati in essa e così, restituirà solo primi 10 documenti.

Eliminazione di tutti i dati

Fino ad ora, tutte le API che abbiamo provato stavano usando un formato JSON. Questa volta, proveremo al formato di query XML. L'uso del formato XML è estremamente simile a JSON poiché XML è anche autodscrittivo.

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" contenuto-tipo: text/xml "--data-binary"*:*"

Ecco cosa torniamo con questo comando:

Elimina tutti i dati utilizzando la query XML

Ora, se proviamo di nuovo a ottenere tutti i dati, vedremo che non sono disponibili dati:

Ottieni tutti i dati

Conteggio totale degli oggetti

Per un comando Final Curl, vediamo un comando con cui 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 torniamo con questo comando:

Contare il numero di oggetti

Conclusione

In questa lezione, abbiamo esaminato come possiamo usare Apache Solr e passare le query usando Curl in formato JSON e XML. Abbiamo anche visto che il pannello di amministrazione Solr è utile nello stesso modo di tutti i comandi di riccioli che abbiamo studiato.