2017-03-28 35 views
0

我试图从旧Elasticsearch(1.4.4版)集群迁移我的数据到一个新的(5.1)重新编制数据与老_TimeStamp到ElastichSearch到新的领域

我使用新的Elasticsearch中的reindex api,但无法将旧的_timestamp更改为新的字段timestamp。其他一切正常。

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

是否有什么办法可以添加脚本标签从旧_timestamp设置新的领域timestamp

+0

您是否设法完成此项工作?我尝试了很多东西 – user2689782

+0

不,对不起,在我可以使用的数据中有其他时间戳字段 – Trind

回答

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" 
    } 
} 
+0

对不起,今天工作时,明天会第一次尝试它。但是我想我已经尝试过这样的事情了,ctx是新的对象还是来自远程源的旧对象? – Trind

+0

不工作,时间戳记字段结束“时间戳记”:null,:/ – Trind

+0

您是否找到解决方案? – user2689782