Ich bin neu in ElasticSearch . Ich versuche herauszufinden, wie ich Daten aus ElasticSearch entfernen kann. Ich habe meine Indizes gelöscht. Dies scheint jedoch die Daten selbst nicht zu entfernen. Die anderen Dinge, die ich gesehen habe, weisen auf die Funktion Delete by Query hin. Ich bin mir jedoch nicht mal sicher, worüber ich fragen soll. Ich kenne meine Indizes. Im Wesentlichen möchte ich herausfinden, wie man a
DELETE FROM [Index]
Von PostMan in Chrome. Ich habe jedoch kein Glück. Es scheint, egal was ich tue, die Daten hängen herum. Bisher habe ich die Indizes erfolgreich gelöscht, indem ich das DELETE-HTTP-Verb in PostMan und eine URL wie die folgende verwendet habe:
http://localhost:9200/[indexName]
Dies scheint jedoch nicht die Daten (auch bekannt als docs) selbst zu entfernen.
Sie können mit cURL
oder visuell mit einem der vielen Tools löschen, die Open Source-Enthusiasten für Elasticsearch erstellt haben.
Verwenden von cURL
curl -XDELETE localhost:9200/index/type/documentID
z.B.
curl -XDELETE localhost:9200/shop/product/1
Sie erhalten dann eine Antwort, ob dies erfolgreich war oder nicht. Sie können einen gesamten Index oder Typen mit einem Index löschen. Sie können einen Typ auch löschen, indem Sie die Dokument-ID wie folgt weglassen.
curl -XDELETE localhost:9200/shop/product
Wenn Sie einen Index löschen möchten -
curl -XDELETE localhost:9200/shop
Wenn Sie mehr als einen Index löschen möchten, der einer bestimmten Namenskonvention folgt (beachten Sie den Platzhalter *
), -
curl -XDELETE localhost:9200/.mar*
Visuell
Wie oben erwähnt, gibt es verschiedene Tools, die ich hier nicht auflisten werde, aber ich werde Sie mit einem verknüpfen, mit dem Sie sofort loslegen können, lokalisiert hier . Dieses Tool heißt KOPF. Um eine Verbindung zu Ihrem Host herzustellen, klicken Sie oben links auf das Logo und geben Sie die URL Ihres Clusters ein.
Sobald die Verbindung hergestellt ist, können Sie Ihren gesamten Cluster verwalten, löschen, optimieren und optimieren.
Wenn Sie jemals alle Indizes löschen müssen, kann dies nützlich sein:
curl -X DELETE 'http://localhost:9200/_all'
Power Shell:
Invoke-WebRequest -method DELETE http://localhost:9200/_all
Die Dokumentation (oder The Definitive Guide ) besagt, dass Sie auch die nächste Abfrage verwenden können, um alle zu löschen Indizes:
curl -XDELETE 'http://localhost:9200/*'
Und es gibt einen wichtigen Hinweis:
Für manche ist die Möglichkeit, alle Ihre Daten mit einem einzigen Befehl zu löschen, eine sehr beängstigende Perspektive. Wenn Sie die Möglichkeit eines versehentlichen Massenlöschens ausschließen möchten, können Sie in Ihrem
elasticsearch.yml
Folgendes auftrue
setzen:
action.destructive_requires_name: true
Sie müssen eine DELETE
Anfrage an senden
http://[your_Host]:9200/[your_index_name_here]
Sie können auch ein einzelnes Dokument löschen:
http://[your_Host]:9200/[your_index_name_here]/[your_type_here]/[your_doc_id]
Ich schlage vor, dass Sie elastichammer verwenden.
Nach dem Löschen können Sie nachsehen, ob der Index mit der folgenden URL noch vorhanden ist: http://[your_Host]:9200/_stats/
Viel Glück!
Durch Löschen des Index wird das Mapping gelöscht und mitgetippt. Sie können alle Zeilen mit der folgenden Abfrage löschen
curl -XDELETE 'localhost:9200/Twitter/Tweet/_query?pretty' -d'
{
"query": {
"match_all":
}
}'
Für die obige Abfrage müssen Sie jedoch das Plug-in zum Löschen nach Abfrage installieren, da Elasticsearch 2.0.0-beta1 zum Löschen nach Abfrage von der Haupt-API entfernt wurde
Install delete-by-query plugin
Sudo bin/plugin install delete-by-query
Für mehr
http://blog.appliedinformaticsinc.com/how-to-delete-elasticsearch-data-records-by-dsl-query/
#list all index: curl -XGET http://localhost:9200/_cat/indices?v
#delete index: curl -XDELETE 'localhost:9200/index_name'
#delete all indices: curl -XDELETE 'localhost:9200/_all'
#delete document : curl -XDELETE 'localhost:9200/index_name/type_name/document_id'
Installieren Sie Kibana . Kibana verfügt über ein intelligenteres Entwickler-Tool, mit dem sich Abfragen einfach erstellen lassen.
Für Massenlöschungen per Abfrage können Sie spezielle Löschungen per Abfrage-API verwenden :
$ curl -XDELETE 'http://localhost:9200/Twitter/Tweet/_query' -d '{
"query" : {
"term" : { "user" : "kimchy" }
}
}
Wer interessant ist, hat eine lange Geschichte.
Sie können einen Index in python wie folgt löschen
from elasticsearch import Elasticsearch
es = Elasticsearch([{'Host':'localhost', 'port':'9200'}])
es.index(index='grades',doc_type='ist_samester',id=1,body={
"Name":"Programming Fundamentals",
"Grade":"A"
})
es.indices.delete(index='grades')
einfachster weg!
Endpoint :
http://localhost:9201/Twitter/_delete_by_query
Payload :
{
"query": {
"match": {
"message": "some message"
}
}
}
dabei ist Twitter
der Index bei der elastischen Suche
ref; https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html
Hier gibt es viele gute Antworten, aber ich möchte auch Folgendes hinzufügen:
Sie können entweder den gesamten Index, den Dokumenttyp oder bestimmte ID-Daten löschen. Dies sind die drei Möglichkeiten:
curl -XDELETE localhost:9200/index_name
curl -XDELETE localhost:9200/index_name/doc-type
curl -XDELETE localhost:9200/index_name/doc-type/documentId
und wenn Sie den gesamten Index löschen möchten, wählen Sie einen Platzhalter.
So listen Sie die Indizes auf curl -L localhost:9200/_cat/indices
9200
Standardport [Ändern Sie den Port, wenn Sie einen anderen Port verwenden]
Sie werden wahrscheinlich alle Indizes finden, die mit dem logstash-yyyy-mm-dd
-Format (logstash- *) beginnen.
Sie können alle Indizes sehen und verwenden
Um die Indizes und Daten zu löschen, folgen Sie dem Befehl.
curl -XDELETE localhost:9200/index_name
(wodurch sowohl die Daten als auch die Indizes entfernt werden).
Ich wollte den Logstash-Index löschen und habe viel nach verschiedenen Tools wie Curl gesucht. Hab aber am Ende die Lösung gefunden. Loggen Sie sich in Kibana ein. Gehen Sie zur Registerkarte Dev Tools und geben Sie DELETE /logstash-*
in das Abfragefeld ein und klicken Sie auf den grünen Pfeil. Wenn Sie "Bestätigt" erhalten: Wahr als Antwort, bedeutet dies, dass die Daten gelöscht wurden.
Sie können den Index auch mit der DELETE-Aktion in 'elasticsearch head' ( Chrome-Plugin ) löschen. Fügen Sie es Ihrem chrome hinzu und verbinden Sie es mit Ihrem Host. Dort finden Sie alle Ihre Indizes. Wenn Sie auf die Schaltfläche "Aktionen" unterhalb des zu löschenden Index klicken, finden Sie in der Dropdown-Liste die Option "LÖSCHEN". Klicken Sie darauf und geben Sie im Popup DELETE ein. Ihr Index wird gelöscht. Mit der Erweiterung 'Elasticsearch head' können Sie Ihre Indizes und Daten auf einfache Weise anzeigen und verwalten.
curl -X DELETE 'https://localhost:9200/_all'
Ändern Sie http
in https
, wenn Sie in Ihrer Anwendung ein SSL-Zertifikat verwenden