elasticsearch - 创建新映射并将旧映射数据中的数据转换为新映射数据

时间:2017-06-09 07:27:26

标签: elasticsearch

我有旧映射的旧索引。我需要一个新的映射。所以我必须创建新索引导致映射无法更改。

我的问题是如何将数据从旧索引/映射传输和转换为新索引?

例如我有一个结构:

{
...
"a",
"b"
}

但是新的映射是:

{
 "c": {
      "a",
      "b"
    }
}

我查了article。但是没有关于数据转换的信息。

1 个答案:

答案 0 :(得分:1)

您可以使用reindex Api。这个API支持脚本来转换文档。文档中的示例:

{
    "source": {
        "index": "twitter"
    },
    "dest": {
        "index": "new_twitter"
    },
    "script": {
        "inline": "if (ctx._source.foo == 'bar') {ctx._version++; ctx._source.remove('foo')}",
        "lang": "painless"
    }
}

在脚本中,您可以根据需要转换源文档。