Database
 sql >> Database >  >> RDS >> Database

Come eliminare i dati da Elastisearch

Una delle caratteristiche di progettazione uniche di Elasticsearch è che, a differenza della maggior parte dei sistemi o database tradizionali, tutte le attività come la connessione e la manipolazione di Elasticsearch vengono eseguite utilizzando una REST API , il che significa che quasi ogni query o comando eseguito sul tuo nodo Elasticsearch è una semplice richiesta HTTP a un URL particolare.

A seconda del HTTP verb inviato e l'URL a cui è inviato, Elasticsearch può eseguire un'ampia varietà di azioni sul nodo o persino sul cluster.

La struttura dell'URL dell'API REST di Elasticsearch

Al livello più elementare, per eseguire un comando in Elasticsearch, dovrai inviare un verbo HTTP all'URL del tuo nodo Elasticsearch. Per lo sviluppo, in genere si tratta di localhost:9200 .

Nella maggior parte casi, il metodo più semplice per inviare una richiesta all'API REST di Elasticsearch è tramite l'utile strumento a riga di comando, cURL , che è un semplice strumento utilizzato per trasferire quasi tutti i tipi di dati Internet.

Ad esempio, per elencare tutti gli indices , puoi eseguire il seguente curl comando dal prompt della shell del tuo server di sviluppo (come indicato nella documentazione ufficiale:

$ curl 'localhost:9200/_cat/indices?v'
health index pri rep docs.count docs.deleted bookstore.size pri.bookstore.size

Qui accediamo all'cat API (indicato dal _ iniziale underscore) e visualizzando gli indices , che mostra una sezione trasversale di ciascun indice nel cluster.

Indici, tipi, documenti e proprietà

Con un esempio in atto, possiamo esplorare più in dettaglio la struttura specifica delle API REST di Elasticsearch, che molto spesso saranno composte da tre componenti strutturate, l'index , il type e il document :

localhost:9200/index/type/document

L'index è la struttura madre ed è più semplicemente pensata come un database che ospita molti types . E index può rappresentare qualsiasi concetto, ma spesso rappresenterà un intero sistema di componenti come un shop o una bookstore .

Types sono contenuti in un index e sono simili alle tables del database , con ogni type che rappresentano una raccolta di oggetti simili (come shirt o book ).

Infine, il document è una singola istanza o rappresentazione di un oggetto del type genitore . Pertanto, il libro "Lo Hobbit" potrebbe esistere come un libro type nell'index denominata libreria .

Eliminazione dei dati da Elasticsearch

Con la sintassi dell'API REST di base fuori mano, possiamo esplorare come eseguire azioni specifiche come l'eliminazione dei dati.

Elimina un singolo documento

Prendendo la nostra sintassi di base come visto sopra, dobbiamo usare curl e invia il DELETE Verbo HTTP, utilizzando il -XDELETE opzione:

$ curl -XDELETE 'localhost:9200/index/type/document'

Ad esempio, per eliminare il nostro libro document di cui sopra , potremmo usare il seguente comando:

$ curl -XDELETE 'localhost:9200/bookstore/book/1'

Questo cancellerà il document con un ID di 1 dal book type che è all'interno del bookstore index .

Elimina un tipo

Come puoi immaginare, con la sintassi solo leggermente ampliata, siamo in grado di rimuovere un intero type . Qui stiamo eliminando il book type :

$ curl -XDELETE 'localhost:9200/bookstore/book'

Elimina un indice

Infine, se desideriamo eliminare un intero index , questo può essere fatto usando la stessa sintassi di prima:

$ curl -XDELETE 'localhost:9200/bookstore'