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.

6voto

Radu Gheorghe Punkte 854

Sie können einen oder mehrere Indizes löschen, was ihre Dateien wirklich von der Festplatte löscht. Zum Beispiel:

curl -XDELETE localhost:9200/$INDEXNAME

Where $INDEXNAME kann ein Indexname sein (z.B. users_v2), N Indizes durch Komma getrennt (z.B. users_v2,users_v3). Ein Indexmuster (z.B. users_*) oder _all funktioniert auch, es sei denn, es ist in der Konfiguration durch action.destructive_requires_name: true blockiert.

Einzeln Dokumente zu löschen ist möglich, aber dies entfernt sie nicht sofort. Ein Löschen ist nur ein Soft-Delete und Dokumente werden tatsächlich während Segmentverschmelzungen entfernt. Weitere Details zu Segmenten und Verschmelzungen finden Sie in dieser Präsentation. Es handelt sich um Solr, aber Verschmelzungen stammen von Lucene, daher haben Sie dieselben Optionen in Elasticsearch.

Zurück zur API können Sie entweder einzelne Dokumente nach ID löschen (geben Sie einen Routing-Wert an, wenn Sie mit Routing indizieren):

curl -XDELETE localhost:9200/users_v2/_doc/user1

Oder nach Abfrage:

curl -XPOST -H 'Content-Type: application/json' localhost:9200/users_v2/_delete_by_query -d '{
  "query": {
    "match": {
      "description_field": "bad user"
    }
  }
}'

5voto

Facundo La Rocca Punkte 3638

Es gibt viele gute Antworten hier, aber es gibt auch etwas, das ich hinzufügen möchte:

  • Wenn Sie den AWS ElasticSearch-Dienst verwenden, können Sie keine Indizes löschen. Statt Indizes zu löschen, müssen Sie sie neu indizieren.

5voto

Sachitha Hirushan Punkte 523

Ich habe Dev-Tools verwendet, um Daten zu löschen

POST /_delete_by_query
  {
   "query": {
       "match_all": {}
    }
 }

Beispiel

POST vehicle-data/_delete_by_query
      {
       "query": {
           "match_all": {}
        }
     }

4voto

prateek kumar Punkte 51

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 und wenn Sie auf die Aktionsschaltfläche unter dem Index klicken, den Sie löschen möchten, finden Sie eine DELETE-Option im Dropdown-Menü. Klicken Sie darauf und geben Sie DELETE im Pop-up ein. Ihr Index wird gelöscht. Die 'Elasticsearch head'-Erweiterung ist eine einfache Möglichkeit, Ihre Indizes und Daten anzuzeigen und zu verwalten.

3voto

funbrain9 Punkte 467

Sie können auch die Chrome-Erweiterung Elasticsearch-Head verwenden, um den Index zu löschen

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