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

So löschen Sie Daten aus Elastisearch

Eines der einzigartigen Designmerkmale von Elasticsearch besteht darin, dass im Gegensatz zu den meisten herkömmlichen Systemen oder Datenbanken alle Aufgaben wie die Verbindung zu und die Bearbeitung von Elasticsearch über eine REST API ausgeführt werden , was bedeutet, dass fast jede Abfrage oder jeder Befehl, der auf Ihrem Elasticsearch-Knoten ausgeführt wird, eine einfache HTTP-Anforderung an eine bestimmte URL ist.

Abhängig vom HTTP verb gesendet und die URL, an die es gesendet wird, kann Elasticsearch eine Vielzahl von Aktionen auf dem Knoten oder sogar dem Cluster ausführen.

Die Elasticsearch-REST-API-URL-Struktur

Auf der einfachsten Ebene müssen Sie zum Ausführen eines Befehls in Elasticsearch ein HTTP-Verb an die URL Ihres Elasticsearch-Knotens senden. Für die Entwicklung ist dies normalerweise localhost:9200 .

In den meisten Fällen ist die einfachste Methode zum Senden einer Anfrage an die REST-API von Elasticsearch das nützliche Befehlszeilentool cURL , ein einfaches Tool zum Übertragen nahezu aller Arten von Internetdaten.

Zum Beispiel, um alle indices aufzulisten , können Sie den folgenden curl ausführen Befehl an der Shell-Eingabeaufforderung Ihres Entwicklungsservers (wie in der offiziellen Dokumentation angegeben:

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

Hier greifen wir auf die cat API zu (erkennbar am führenden _ Unterstrich) und Anzeigen der indices , das einen Querschnitt durch jeden Index im Cluster zeigt.

Indizes, Typen, Dokumente und Eigenschaften

Anhand eines Beispiels können wir die spezifische Struktur von Elasticsearch-REST-APIs genauer untersuchen, die meistens aus drei strukturierten Komponenten bestehen, dem index , der type , und das document :

localhost:9200/index/type/document

Der index ist die übergeordnete Struktur und wird am einfachsten als database betrachtet das viele types beherbergt . Und index kann ein beliebiges Konzept darstellen, repräsentiert aber häufig ein ganzes System von Komponenten, wie z. B. einen shop oder eine bookstore .

Types sind in einem index enthalten und ähneln Datenbank-tables , mit jedem type eine Sammlung ähnlicher Objekte darstellt (wie shirt oder book ).

Schließlich das document ist eine einzelne Instanz oder Darstellung eines Objekts des übergeordneten type . Somit kann das Buch „Der Hobbit“ als Buch existieren type im index mit dem Namen Buchhandlung .

Löschen von Daten aus Elasticsearch

Wenn die grundlegende REST-API-Syntax aus dem Weg geräumt ist, können wir untersuchen, wie bestimmte Aktionen wie das Löschen von Daten ausgeführt werden.

Ein einzelnes Dokument löschen

Wenn wir unsere grundlegende Syntax wie oben gesehen verwenden, müssen wir curl verwenden und senden Sie den DELETE HTTP-Verb mit -XDELETE Möglichkeit:

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

Zum Beispiel, um unser oben erwähntes Buch document zu löschen , könnten wir den folgenden Befehl verwenden:

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

Dadurch wird das document gelöscht mit einer ID von 1 aus dem book type das ist im bookstore index .

Einen Typ löschen

Wie Sie sich vorstellen können, können wir mit der nur geringfügig erweiterten Syntax einen ganzen type entfernen . Hier löschen wir das book type :

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

Einen Index löschen

Zuletzt, wenn wir einen gesamten index löschen möchten , kann dies mit der gleichen Syntax wie zuvor erfolgen:

$ curl -XDELETE 'localhost:9200/bookstore'