Elasticsearch Flush

Elasticsearch Flush
Elasticsearch bietet eine Flush -API, die den Index- oder Datenstrom -Flush -Operationen aufruft. Durch das Spülen eines Index- oder Datenstroms wird sichergestellt, dass die im Transaktionsprotokoll gespeicherten Daten in den Lucene -Index verschoben werden.

Das Verschieben der Daten aus dem Transaktionsprotokoll in den Lucene -Index hat die Notwendigkeit der Verwaltung einer anderen Kopie des Transaktionsprotokolls entfernt. Es ermöglicht auch Elasticsearch, den Speicherplatz für den Speicherplatz freizusetzen, indem unnötige Generationsdateien entfernt werden.

Dieser Beitrag behandelt einen Überblick über die Elasticsearch Flush -API, mit der wir einen oder mehrere Index- oder Datenströme spülen können.

API -Syntax

Der folgende Ausschnitt zeigt die Syntax der Verwendung der Elasticsearch Flush API.

Post // _ Flush

Der Zielparameter kann ein Name eines Index, eines Datenstroms oder eines Index sein. Sie können auch mehrere Indizes oder Datenströme in einer von Kommas getrennten Liste angeben. Denken Sie daran, dass Elasticsearch das Transaktionsprotokoll in den angegebenen Zielen spülen wird.

Wenn Sie alle Indizes und Datenströme im Cluster spülen möchten, können Sie den Zielwert überspringen, wie in der folgenden Syntax gezeigt:

Post /_flush

Sie können auch einen Sternchen oder den _all -Parameter verwenden.

Abfrageparameter

Die API unterstützt die folgenden Parameter und ermöglicht es Ihnen, das Anforderungs- und Antwortverhalten zu ändern.

  1. Degly_no_inidices - Ermöglicht der Anforderung, einen Fehler zurückzugeben, wenn Wildcard -Ausdrücke oder Alias ​​im Zielwert übergeben werden.
  2. EXPECT_WILDCARDS - Ermöglicht die Anforderung, die übergebenen Platzhalter zu erweitern und sie auf einem beliebigen Index- oder Datenstrom zu vereinen.
  3. Force - Ermöglicht die Anfrage, einen Flush -Betrieb zu erzwingen, obwohl keine Daten für den Commit to Lucene Index verfügbar sind.
  4. Ignore_unavacableable - ignoriert, ob das Ziel fehlt oder geschlossen wird.
  5. Wait_if_ongoing - blockiert den Flush -Betrieb, bis alle anderen laufenden Flush -Operationen abgeschlossen sind.

Beispiel - Elasticsearch bush spezifischer Index

Das folgende Beispiel zeigt, wie die Elasticsearch Flush -API verwendet wird, um einen Zielindex zu spülen.

curl -xpost “http: // localhost: 9200/disney/_flush” -H “KBN -XSRF: Berichterstattung”

Die obige Anfrage spüle den Index mit dem Namen 'Disney'. Die resultierende Ausgabe ist wie gezeigt:


"_shards":
"Gesamt": 2,
"erfolgreich": 2,
"fehlgeschlagen": 0

Beispiel 2 - Elasticsearch spülen mehrere Indizes und Datenströme

Um mehrere Indizes und Datenströme zu spülen, können wir sie als von der Kommas getrennte Liste angeben, wie gezeigt:

curl -xpost "http: // localhost: 9200/disney, Disney_plus/_flush" -H "KBN -XSRF: Berichterstattung"

Die resultierende Ausgabe:


"_shards":
"Gesamt": 4,
"erfolgreich": 4,
"fehlgeschlagen": 0

Beispiel 3 - Elasticsearch spülen alle Indizes und Datenströme im Cluster

Um alle Datenströme und Indizes im Cluster zu spülen, können wir die Anforderung wie gezeigt ausführen:

curl -xpost "http: // localhost: 9200/_flush" -h "KBN -XSRF: Berichterstattung"

Die resultierende Ausgabe:


"_shards":
"Gesamt": 12,
"erfolgreich": 12,
"fehlgeschlagen": 0

Abschluss

In diesem Beitrag haben Sie gelernt, wie man mit der Elasticsearch Flush -API das Transaktionsprotokoll aus einem Index- oder Datenstrom zum Lucene -Index spüle.