Löschen eines Feldes aus einem Dokument in Elasticsearch

Erfahren Sie, wie Sie Felder aus Elasticsearch-Dokumenten mithilfe der Update-API, von Skripten oder durch Neuindizierung für einzelne und massenhafte Entfernungen löschen können.

Neu bei Elasticsearch? Nehmen Sie an unserem Webinar „Erste Schritte mit Elasticsearch“ teil. Sie können jetzt auch eine kostenlose Cloud-Testversion starten oder Elastic auf Ihrem Rechner testen.

In Elasticsearch ist das Löschen eines Feldes aus einem Dokument eine häufige Anforderung. Dies kann nützlich sein, wenn Sie unnötige oder veraltete Informationen aus Ihrem Index entfernen möchten. In diesem Artikel werden wir verschiedene Methoden zum Löschen eines Feldes aus einem Dokument in Elasticsearch besprechen und Beispiele sowie Schritt-für-Schritt-Anleitungen geben.

Methode 1: Verwendung der Update-API

Die Update-API ermöglicht es Ihnen, ein Dokument zu aktualisieren, indem Sie ein Skript bereitstellen, das die Quelle des Dokuments ändert. Mit dieser API können Sie ein Feld aus einem Dokument löschen, indem Sie das Feld auf Null setzen. Hier ist eine Schritt-für-Schritt-Anleitung dazu:

1. Ermitteln Sie den Index, den Dokumenttyp (falls Sie Elasticsearch 6.x oder eine ältere Version verwenden) und die Dokument-ID des Dokuments, das Sie aktualisieren möchten.

2. Verwenden Sie die Update-API mit einem Skript, das das Feld auf null setzt oder, noch besser, es aus dem Quelldokument entfernt. Das folgende Beispiel zeigt, wie das Feld „field_to_delete“ aus einem Dokument mit der ID „1“ im Index „my_index“ gelöscht wird:

3. Führe die Anfrage aus. Im Erfolgsfall gibt Elasticsearch eine Antwort zurück, die anzeigt, dass das Dokument aktualisiert wurde.

Hinweis: Diese Methode entfernt das Feld nur aus dem angegebenen Dokument. Das Feld wird weiterhin in der Zuordnung und in anderen Dokumenten im Index vorhanden sein.

Methode 2: Reindexierung mit einer modifizierten Quelle

Wenn Sie ein Feld aus allen Dokumenten in einem Index löschen möchten, können Sie die Reindex-API verwenden, um einen neuen Index mit der modifizierten Quelle zu erstellen. So machen Sie das:

1. Erstellen Sie einen neuen Index mit den gleichen Einstellungen und Zuordnungen wie der ursprüngliche Index. Mit der Get Index API können Sie die Einstellungen und Zuordnungen des ursprünglichen Index abrufen.

2. Verwenden Sie die Reindex-API, um Dokumente vom ursprünglichen Index in den neuen Index zu kopieren und dabei das Feld aus der Quelle zu entfernen. Das folgende Beispiel zeigt, wie das Feld „field_to_delete“ aus allen Dokumenten im Index „my_index“ gelöscht wird:


3. Überprüfen Sie, ob der neue Index die korrekten Dokumente enthält, nachdem das Feld entfernt wurde.

4. Wenn alles in Ordnung ist, können Sie den ursprünglichen Index löschen und gegebenenfalls einen Alias für den neuen Index hinzufügen, der den Namen des ursprünglichen Index trägt.

Methode 3: Aktualisierung des Mappings und der Neuindexierung

Wenn Sie ein Feld aus der Zuordnung und alle Dokumente in einem Index löschen möchten, können Sie die Zuordnung aktualisieren und anschließend die Dokumente neu indizieren. So geht's:

1. Erstellen Sie einen neuen Index mit den gleichen Einstellungen wie der ursprüngliche Index.

2. Rufen Sie die Zuordnungen des ursprünglichen Index mithilfe der Get Mapping API ab.

3. Ändern Sie die Zuordnungen, indem Sie das Feld entfernen, das Sie löschen möchten.

4. Wenden Sie die geänderten Zuordnungen mithilfe der Put Mapping API auf den neuen Index an.

5. Verwenden Sie die Reindex-API, um Dokumente vom ursprünglichen Index in den neuen Index zu kopieren, wie in Methode 2 beschrieben.

6. Überprüfen Sie, ob der neue Index die korrekten Dokumente enthält, wobei das Feld entfernt wurde, und ob das Feld in der Zuordnung nicht vorhanden ist.

7. Wenn alles gut aussieht, können Sie den ursprünglichen Index löschen und gegebenenfalls einen Alias mit dem Namen des ursprünglichen Index zum neuen Index hinzufügen.

Fazit

In diesem Artikel haben wir drei Methoden zum Löschen eines Feldes aus einem Dokument in Elasticsearch besprochen: die Verwendung der Update-API, die Neuindizierung mit einer geänderten Quelle und die Aktualisierung des Mappings mit anschließender Neuindizierung. Jede Methode hat ihre eigenen Anwendungsfälle und Vor- und Nachteile. Wählen Sie daher diejenige, die am besten zu Ihren Anforderungen passt. Denken Sie immer daran, Ihre Änderungen zu testen und die Ergebnisse zu überprüfen, bevor Sie sie in Produktionsumgebungen anwenden.

Häufige Fragen

Was ist die Update-API?

Eine API, mit der Sie ein Dokument aktualisieren können, indem Sie ein Skript bereitstellen, das die Quelle des Dokuments ändert, z. B. ein Feld auf Null setzt oder entfernt.

Was ist die Reindex-API?

eine API, die dazu dient, Dokumente von einem ursprünglichen Index in einen neuen Zielindex zu kopieren und dabei die Quelle während des Übergangs zu modifizieren (z. B. durch Entfernen eines Feldes).

Was ist Mapping?

Es ist die definierte Struktur eines Indexes; um ein Feld vollständig aus einem Index zu löschen, müssen Sie die Mappings ändern, indem Sie das Feld entfernen und dann neu indizieren.

Welche Vorteile bietet das Löschen von Feldern in Elasticsearch-Dokumenten?

Das Löschen von Feldern in Elasticsearch-Dokumenten ist nützlich, wenn Sie unnötige oder veraltete Informationen aus Ihrem Index entfernen möchten.

Zugehörige Inhalte

Sind Sie bereit, hochmoderne Sucherlebnisse zu schaffen?

Eine ausreichend fortgeschrittene Suche kann nicht durch die Bemühungen einer einzelnen Person erreicht werden. Elasticsearch wird von Datenwissenschaftlern, ML-Ops-Experten, Ingenieuren und vielen anderen unterstützt, die genauso leidenschaftlich an der Suche interessiert sind wie Sie. Lasst uns in Kontakt treten und zusammenarbeiten, um das magische Sucherlebnis zu schaffen, das Ihnen die gewünschten Ergebnisse liefert.

Probieren Sie es selbst aus