将旧的_timeStamp重新索引从Elasticsearch 1.X到ElastichSearch的数据到新的Field

时间:2017-03-28 19:09:50

标签: elasticsearch elasticsearch-5

我正在尝试将我的数据从旧的Elasticsearch(版本1.4.4)群集迁移到新的群集(5.1)

我在新的Elasticsearch中使用reindex api,但无法将旧_timestamp转到新字段timestamp。其他一切都很好。

POST _reindex
{
  "source": {
    "remote": {
      "host": "http://oldhost:9200"
    },
    "index": "source",
    "query": {
       "match_all": {}
    }
  },
  "dest": {
    "index": "dest"
  }
}

有没有办法添加脚本标记来设置旧timestamp的新字段_timestamp

1 个答案:

答案 0 :(得分:0)

我不是100%肯定这会起作用,但是使用reindex API你可以指定一小部分可以读取旧_timestamp字段的脚本(虽然我从来没有亲自试了一下):

POST _reindex
{
  "source": {
    "remote": {
      "host": "http://oldhost:9200"
    },
    "index": "source"
    "query": {
       "match_all": {}
    }
  },
  "dest": {
    "index": "dest"
  },
  "script": {
    "lang": "painless",
    "inline": "ctx._source.timestamp = ctx._timestamp"
  }
}