0 Pluspunkte 0 Minuspunkte
Ich habe einen Elasticsearch Index erstellt und beim Indexieren einen Fehler gemacht. Wie kann ich ein neues Feld zum Index hinzufügen das auf einem bestehenden Wert basiert? Ich möchte z.B das Feld "shipping" hinzufügen und für alle Einträge die in einem bestehenden Feld einen bestimmten Wert haben ein 1 darin speichern.
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Erstelle einen neuen Index mit dem gewünschten Namen und den erforderlichen Einstellungen und Mappings, inkl. der neuen Felder. 

Mit der Elasticsearch Reindex API kannst du die Daten vom alten Index auf den neuen übertragen. Du kannst das "Script" Feld verwenden, um Transformationen auf die Daten anzuwenden und die neuen Felder basierend auf den alten Daten zu befüllen.

POST _reindex
{
  "source": {
    "index": "alter_index"
  },
  "dest": {
    "index": "neuer_index"
  },
  "script": {
    "source": "if (ctx._source.bisheriges_feld == 'Bedingung') { ctx._source.shipping = 1 }"
  }
}
von