ElasticSearch è un server di ricerca che permette di ricercare, analizzare e mostrare dati contenuti in documenti in formato JSON, con interrogazioni che avvengono quasi in tempo reale. Tutte le funzionalità sono esposte tramite interfaccia RESTful. Vediamo un breve esempio su ElasticSearch.
Indice
- Terminologia ElasticSearch
- Installazione
- ElasticSearch Operazioni CRUD
- POST DOCUMENTO
- UPDATE DOCUMENTO
- GET DOCUMENTO
- GET DOCUMENTO CON PARAMETRI
- DELETE
Terminologia ElasticSearch
Index: raccolta di documenti. E’ il posto in cui tutti i documenti sono già pronti per essere analizzati. E’ paragonabile al concetto di Database nei DB relazionali.
Type: è la categoria di documenti simili. Permette di raggruppare in un insieme documenti simili dello stesso tipo. Type è paragonabile al concetto di tabella nel modello relazionale.
Document: è un’istanza di un tipo. Un documento è simile a una riga in una tabella in uno schema relazionale. Ad esempio, supponiamo di avere un’applicazione di e-commerce. Si potrebbe avere un documento per prodotto o un documento per ordine.
Installazione
Scaricare ElasticSearch da:
https://www.elastic.co/downloads/elasticsearch
Estrarre il contenuto del file zip in una cartella:
Settare nella variabile di ambiente il path di ElasticSearch
C:\elasticsearch-7.10.0
Sotto Windows
selezionare configurazione -> Impostazioni di sistema avanzate
Da linea di comando avviare ElasticSearch
Accedere dal browser a ElasticSearch con http://localhost:9200/
Per interagire con ElasticSearch si deve utilizzare delle API basate su REST (protocollo JSON su HTTP):
GET: Per selezionare o leggere dati da ElasticSearch
POST: Per creare i dati su ElasticSearch
PUT: Per aggiornare i dati su ElasticSearch
DELETE: Per eliminare dati esistenti da ElasticSearch
ElasticSearch Operazioni CRUD
Esempio di uso ElasticSearch . Per invocare i metodi Rest avviare PostMan, o un software analogo.
post documento
Inserire un nuovo documento con /helloworld/posts/1001 con i seguenti dati di richiesta:
{ "title": "Divina Commedia", "category":"Letteratura", "published_date":"19-11-1400", "author":"Dante Alighieri" }
su postman diventa
L’id 1001 è la chiave primaria per identificare il documento inviato
Il JSon di risposta ci conferma che il documento è stato creato:
{ "_index": "helloworld", "_type": "posts", "_id": "1001", "_version": 1, "result": "created", "_shards": { "total": 2, "successful": 1, "failed": 0 }, "_seq_no": 0, "_primary_term": 1 }
get documento
Per leggere i dati da ElasticSearch, aggiungere “_search” alla fine dell’URL dell’API GET
Nei risultati di ricerca appare il documento inserito precedentemente.
Get documento con parametri
Per usare i parametri di ricerca per query aggiungere “?q =:” nell’url
Update Documento
Aggiornare, ad esempio, il titolo con la seguente richiesta:
{ "post_id" : "1001", "title": "La NUOVA Divina Commedia", "category":"Letteratura", "published_date":"19-11-1400", "author":"Dante Alighieri" }
DELETE
Rimuovere un documento con _id = 1001