495 Stimmen

Entfernen von Daten aus ElasticSearch

Ich möchte Daten aus ElasticSearch entfernen. Ich habe meine Indizes gelöscht. Allerdings scheint das die Daten selbst nicht zu entfernen. Die anderen Informationen, die ich gesehen habe, verweisen auf das Löschen nach Abfrage Feature. Allerdings bin ich mir nicht einmal sicher, wonach ich suchen soll. Ich kenne meine Indizes. Im Wesentlichen möchte ich herausfinden, wie man ein

DELETE FROM [Index]

aus PostMan in Chrome durchführt. Allerdings habe ich kein Glück. Es scheint, als hänge die Daten unabhängig davon, was ich tue. Bisher habe ich die Indizes erfolgreich gelöscht, indem ich das DELETE HTTP Verb in PostMan verwendet habe und eine URL wie diese:

   http://localhost:9200/[indexName]

Allerdings scheint das die Daten (auch Dokumente genannt) selbst nicht zu entfernen.

11voto

Edwin O. Punkte 4356

Einfachster Weg !

Endpunkt :
http://localhost:9201/twitter/_delete_by_query

Nutzlast :
{
  "query": { 
    "match": {
      "message": "irgendeine Nachricht"
    }
  }
}

wo twitter der Index in der Elastic-Suche ist

ref ; https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html

11voto

Pramod H G Punkte 1160

1. Löschen API

Entfernt ein Dokument aus dem angegebenen Index.

DELETE //_doc/<_id>

Beispiel:

DELETE http://localhost:9200/my-index-000001/_doc/1

Referenz: ES-Leitfaden >> Löschen API

2. Löschen nach Abfrage API

Löscht Dokumente, die der angegebenen Abfrage entsprechen.

Beispiel:

POST http://localhost:9200/my-index-000001/_delete_by_query
{
  "query": {
      "match": {
           "user.id": "elkbee"
      }
   }
}

Referenz: ES-Leitfaden >> Löschen nach Abfrage API

8voto

Hubbitus Punkte 4801

Für Massenlöschung nach Abfrage können Sie die spezielle Delete-by-Query-API verwenden:

$ curl -XDELETE 'http://localhost:9200/twitter/tweet/_query' -d '{
    "query" : {
        "term" : { "user" : "kimchy" }
    }
}

In der Geschichte wurde diese API gelöscht und dann wieder eingeführt

Wer interessiert hat eine lange Geschichte.

  1. In der ersten Version dieser Antwort verweise ich auf die Dokumentation von Elasticsearch Version 1.6. In dieser Version war diese Funktionalität als veraltet markiert, funktionierte aber gut.
  2. In Elasticsearch Version 2.0 wurde es in ein separates Plugin verschoben. Und sogar die Gründe, warum es ein Plugin wurde, wurden erklärt.
  3. Und in Version 5.0 wurde es wieder im Kern-API aufgenommen!

7voto

Gaurav Punkte 459

Sie können entweder den gesamten Index, den Dokumententyp oder bestimmte ID-Daten löschen. Dies sind die drei Möglichkeiten:

  1. curl -XDELETE localhost:9200/index_name

  2. curl -XDELETE localhost:9200/index_name/doc-type

  3. curl -XDELETE localhost:9200/index_name/doc-type/documentId

Wenn Sie den gesamten Index löschen möchten, verwenden Sie das Platzhalterzeichen.

6voto

Ashish Kumar Punkte 61

Ich wollte den Logstash-Index löschen und habe viel über verschiedene Tools wie cURL gesucht. Aber am Ende habe ich die Lösung gefunden. Melden Sie sich bei Kibana an. Gehen Sie zum Register "Dev Tools" und geben Sie im Abfragenfeld DELETE /logstash-* ein und klicken Sie auf den grünen Pfeil. Wenn Sie in der Antwort "acknowledged": true erhalten, bedeutet das, dass die Daten gelöscht wurden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X