首页 > 解决方案 > 如何克隆弹性搜索索引映射

问题描述

如何使用 php/python 将 elasticsearch (v5.3) 索引映射克隆到另一个索引。问题是我没有这些索引的映射。我们正在尝试在迁移到集群之前增加分片数量,当前设置是单个节点,并且所有索引都有 1 个分片。

我想到的流程-创建新索引->克隆映射->重新索引->将别名指向新索引。

如果有人能指出正确的方向,将有所帮助。

标签: pythonelasticsearch

解决方案


我认为我将路径更改为:

  1. 克隆映射,例如。从 HTTP GET elastik:9200/my_index
  2. 从在第 1 点克隆/或在第 1 点修改的设置创建具有版本后缀的新索引
  3. 用数据重新索引
  4. 修改别名,例如。my_index 指向带有版本后缀的新索引

在 symfony 中我使用 Elastic Client 并且重新创建索引很简单

$builder = ClientBuilder::create();
$builder
            ->setHosts([
                [
                    'host' => $host,
                    'port' => $port,
                ]
            ])
            ->setConnectionParams($this->clientOptions);

    $this->client = $builder->build();
    $this->client->indices()->delete([
            'index' => $this->index
        ]);

    $this->buildMapping();

将上面的代码移动到 symfony cli 也很简单。


推荐阅读