26 Reindexing APIs

26.1 Beschreibung

Die Reindexing APIs ermöglichen das Kopieren von Dokumenten aus einem oder mehreren Quellindizes in einen Zielindex. Sie sind nützlich für Indexmigrationen, Schemaänderungen oder zur Optimierung der Datenstruktur.


26.2 Beispiele

Einfaches Reindexing

POST /_reindex
{
  "source": {
    "index": "old-index"
  },
  "dest": {
    "index": "new-index"
  }
}

Reindexing mit einer Query

POST /_reindex
{
  "source": {
    "index": "old-index",
    "query": {
      "term": { "status": "active" }
    }
  },
  "dest": {
    "index": "new-index"
  }
}

Reindexing mit Datenumwandlung

POST /_reindex
{
  "source": {
    "index": "old-index"
  },
  "dest": {
    "index": "new-index"
  },
  "script": {
    "source": "ctx._source['new_field'] = 'default_value'"
  }
}

Reindexing aus einem Remote-Cluster

POST /_reindex
{
  "source": {
    "remote": {
      "host": "http://remote-cluster:9200"
    },
    "index": "remote-index"
  },
  "dest": {
    "index": "local-index"
  }
}

26.3 Wichtigste Parameter

Parameter Beschreibung
source.index Der Quellindex.
dest.index Der Zielindex.
query Filtert Dokumente im Quellindex.
script Führt Transformationen während des Reindexings durch.
remote.host Die URL eines Remote-Clusters für das Reindexing.

26.4 Übungsaufgaben

  1. Einfaches Reindexing:
    Kopieren Sie alle Dokumente aus dem Index users_old in den neuen Index users_new.

    POST /_reindex
    {
      "source": {
        "index": "users_old"
      },
      "dest": {
        "index": "users_new"
      }
    }
  2. Gefiltertes Reindexing:
    Kopieren Sie nur Dokumente mit dem Feld status auf active aus dem Index users_old in users_new.

    POST /_reindex
    {
      "source": {
        "index": "users_old",
        "query": {
          "term": { "status": "active" }
        }
      },
      "dest": {
        "index": "users_new"
      }
    }
  3. Reindexing mit Transformation:
    Kopieren Sie Dokumente aus users_old in users_new und fügen Sie ein neues Feld migrated mit dem Wert true hinzu.

    POST /_reindex
    {
      "source": {
        "index": "users_old"
      },
      "dest": {
        "index": "users_new"
      },
      "script": {
        "source": "ctx._source['migrated'] = true"
      }
    }
  4. Reindexing aus Remote-Cluster:
    Kopieren Sie Dokumente aus dem Index remote_users eines Remote-Clusters in den Index local_users.

    POST /_reindex
    {
      "source": {
        "remote": {
          "host": "http://remote-cluster:9200"
        },
        "index": "remote_users"
      },
      "dest": {
        "index": "local_users"
      }
    }

26.5 Musterlösungen

Einfaches Reindexing

POST /_reindex
{
  "source": {
    "index": "users_old"
  },
  "dest": {
    "index": "users_new"
  }
}

Gefiltertes Reindexing

POST /_reindex
{
  "source": {
    "index": "users_old",
    "query": {
      "term": { "status": "active" }
    }
  },
  "dest": {
    "index": "users_new"
  }
}

Reindexing mit Transformation

POST /_reindex
{
  "source": {
    "index": "users_old"
  },
  "dest": {
    "index": "users_new"
  },
  "script": {
    "source": "ctx._source['migrated'] = true"
  }
}

Reindexing aus Remote-Cluster

POST /_reindex
{
  "source": {
    "remote": {
      "host": "http://remote-cluster:9200"
    },
    "index": "remote_users"
  },
  "dest": {
    "index": "local_users"
  }
}