ElasticSearch 数据复制

  |   0 评论   |   97 浏览

    在某些场景下,我们需要对ES中的索引进行升级。 比如索引中新增字段。但是,对于已经存在的索引,
    我们无法修改其中的mappings,而字段的增删或者更新,都需要更新mappings。我们可以这么来实现:
    1、新建一个新的索引,该索引包含了最新版本中的所有字段
    2、在命令窗口中通过如下命令进行数据的复制
    curl -X POST http://127.0.0.1:9200/_reindex -d ‘{“source”:{“index”:“index1”},“dest”:{“index”:“index2”}}’ -H “Content-Type:application/json”
    这里需要注意几个问题:
    a、命令行中,需要携带头部信息,指定格式为Content-Type:application/json, 不然会报406执行错误
    b、需要注意严格的按照指定格式来写。在实际的实践中,出现几个错误:index中加了空格,导致无法执行;直接复制总是会有一些莫名的编码问题
    3、执行完后,可以查看新索引中的数据。 新字段没有值,但是后面的数据是更新后的完整内容。可以很好的保留之前的数据。

    当然,有些可以自己写同步工具来实现数据的迁移,而且保证数据的完整性,但是那种效率方面会稍微慢一点。、

    更多的精选工具查询: http://ruoyixi.top

    评论

    发表评论

    validate