ElasticSearch und NEST: Wie löscht man alle Dokumente aus einem Index?

8

Ich weiß, wie man einen ganzen ElasticSearch-Index löscht , aber wie löscht man alle Dokumente aus einem Index?

Meine Motivation: Ich hätte gerne eine "ReIndex" -Methode, die den gesamten Inhalt eines Index löscht, so dass ich alle Dokumente neu laden kann.

Die ElasticSearch-Syntax wäre hilfreich. NEST-Syntax wäre noch besser.

    
Jim G. 13.11.2014, 19:52
quelle

4 Antworten

13

Ich habe in Nest nach etwas ähnlichem gesucht und ich dachte, ich würde die Syntax hier für jeden aufschreiben, der nach ihm sucht:

%Vor%     
hross 13.03.2015, 12:48
quelle
4

Sie können eine Löschung nach Abfrage verwenden. Dadurch werden alle Dokumente gelöscht, die * mit allem übereinstimmen.

%Vor%
  • Ändern Sie localhost in den Hostnamen, auf dem der Knoten ausgeführt wird.

Ссылка

Vergessen Sie nicht, danach zu optimieren.

%Vor%     
JayTee 13.11.2014 19:58
quelle
1

$ curl -XPOST localhost:9200/myindex/_optimize ....

Der Optimierungsprozess bereinigt alle von Ihnen erstellten Softdelete durch Löschen nach Abfrage.

Wir sehen uns auch einem ähnlichen Problem gegenüber, bei dem wir viele Dokumente löschen. Tatsächlich verschieben wir viele Dokumente von einem Index zum anderen, da wir die Daten nach Datum sortiert haben. Aber da ES das Verschieben von Daten von einem Index zu einem anderen nicht unterstützt,

Aber die Optimierung ist eine kostspielige Operation, da sie viele E / A-Suchen verbraucht. Wenn Sie nur für Löschvorgänge löschen möchten, dann denke ich, können Sie das Flag "only_expunge_deletes" verwenden, um Segmente nur mit Löschvorgängen zusammenzuführen.

Ссылка

    
user3775217 15.11.2014 18:19
quelle
0
%Vor%     
vishnu das 10.08.2015 06:11
quelle

Tags und Links