Löschen eines Feldes aus einem Dokument in Elasticsearch

Methoden zum Löschen eines Feldes aus einem Dokument in Elasticsearch untersuchen.

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 den Quellcode 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: Neuindizierung mit einer geänderten 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 geänderten Quelle zu erstellen. So geht's:

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 der Zuordnung und Neuindizierung

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 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.

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.

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