Elasticsearch Feld entfernen

Elasticsearch Feld entfernen

„Wenn Sie mit Elasticarcharch -Indizes arbeiten, können Sie auf eine Instanz stoßen, in der Sie ein Feld aus einem vorhandenen Dokument entfernen müssen. Leider bietet Elasticsearch keine native Anfrage, mit der wir diese Aktion ausführen können.

Wir können jedoch die Dokument -Update -API verwenden und ein Skript übergeben, mit dem wir ein Feld basierend auf seinem Namen entfernen können.”

NOTIZ: Dieser Prozess erfordert, dass Sie grundlegende Kenntnisse über Elasticsearch Scripting und die Dokument -Update -API haben. Fühlen Sie sich frei, die Dokumente oder unsere Tutorials zum Thema zu erkunden, um mehr zu erfahren.

Lassen Sie uns eintauchen.

Überprüfen Sie, ob ein Dokument vorhanden ist

Bevor Sie ein Feld aus einem bestimmten Dokument entfernen, ist es gut sicherzustellen, dass das Zieldokument im Index vorhanden ist.

Wir können mit der Such -API das Zieldokument abrufen.

Angenommen, wir haben den Index von Kibana_Sample_logs_data. Wir können den Index nach einem Dokument durchsuchen, das eine bestimmte IP enthält.

NOTIZ: Das obige Beispiel wird nur zum Abbildungszwecken verwendet. Sie können verschiedene Methoden verwenden, um zu überprüfen, ob ein bestimmtes Dokument im Index verfügbar ist.

curl -xget "http: // localhost: 9200/kibana_sample_data_logs/_search" -h "kbn -xsrf: meldung" -h "content -type: application/json" -d '

"Größe": 0,
"Abfrage": "Match":
"IP": "171.24.97.162 "

'

Resultierende Ausgabe:


"Nehmen": 3,
"Timed_out": Falsch,
"_shards":
"Gesamt": 1,
"erfolgreich": 1,
"übersprungen": 0,
"fehlgeschlagen": 0
,
"Hits":
"Gesamt":
"Wert": 17,
"Beziehung": "EQ"
,
"max_score": null,
"Hits": []

Als nächstes kann ein einfaches Skript ein Zielfeld aus dem Dokument entfernen. Melden Sie sich zunächst in Ihre Kibana -Konsole an und führen Sie den Befehl aus:

curl -xpost "http: // localhost: 9200/kibana_sample_data_logs/_update/5pa49iibktjaz6ttsib5" -h "kbn -xsrf: meldung

"Skript": "CTX._Quelle.entfernen ('\ "ip' \") ""
'

Die obige Anforderung verwendet ein schmerzloses Kontextskript, um das Dokument zu aktualisieren und das Feld „IP“ mit der angegebenen ID zu entfernen.

Ausgang:


""_index"": ""Kibana_Sampel_Data_logs"",
""_id"": ""5pa49iibktjaz6ttsib5"",
""_Version 2,
""Ergebnis"": ""aktualisiert"",
""_shards"":
""Gesamt"": 2,
""erfolgreich"": 2,
""fehlgeschlagen"": 0
,
""_seq_no"": 14074,
""_primary_term"": 1

Sobald das Dokument aktualisiert ist, können Sie überprüfen, indem Sie die Abfrage ausführen.:

curl -xget ""http: // localhost: 9200/kibana_sample_data_logs/_doc/5pa49iibktjaz6ttsib5"" -H ""kbn -xsrf: melden""

Die obige Anforderung sollte die im Dokument gespeicherten Daten mit der angegebenen ID zurückgeben.

Wir können überprüfen, ob sich das IP -Feld nicht mehr im Dokument befindet.

Abschluss

In diesem Artikel haben Sie gelernt, wie Sie mit Elasticsearch -Skriptfunktionen ein Feld aus einem vorhandenen Dokument entfernen können.

Danke fürs Lesen!!

"