我升级到最新的ES6。 ES6不再支持多种类型,我目前在我的指标中。
因此,我想将特定类型的旧索引(mac-assign)中的所有数据复制到只有一种类型的新索引:doc。
我已从多个类型的索引中过滤掉旧数据:
GET pers-mac-data-prod/_search
{
“query”: {
“type” : {
“value” : “mac-assign”
}
}
}
这就是我要添加到我的新索引pers-mac-assign-dev(类型为doc)的数据
有谁知道这是否可行以及如何? (我已经尝试过弹性体积但没有成功......)
答案 0 :(得分:1)
我使用Elasticsearch Reindex API实现了这一点(感谢Chin Huang在评论中提出的建议):
POST _reindex
{
"source": {
"index": "pers-mac-data-prod",
"type": "mac-assign"
},
"dest": {
"index": "pers-mac-assign-dev",
"type": "doc"
}
}
NB!您还必须指定dest的类型。你可能认为这是隐含的,因为新的ES6只为每个索引处理一种类型,但是如果省略dest类型,它将导致错误,因为它将尝试考虑来自多种类型的源的映射。
答案 1 :(得分:0)
您应该可以使用elasticsearch input plugin使用logstash执行此操作 基本上,logstash将在旧实例上搜索与您的查询匹配的所有事件(在您的情况下按类型过滤),然后在您的logstash配置中为您的新实例定义elasticsearch输出。
请阅读链接,在其示例中,它指示_doc的排序,它应该存在于您的查询中以减少旧实例的负载(您不关心事件的处理顺序,因为您想要所有匹配您的查询的那些)