在 ElasticSearch 中重新索引多个索引的最佳方法
Best way to reindex multiple indices in ElasticSearch
我正在使用 Elasticsearch 5.1.1 并使用 ES 提供的默认映射创建了 500 多个索引。
现在我们决定使用动态模板。
为了将此 template/mapping 应用于旧索引,我需要重新索引所有索引。
最好的方法是什么?我们可以为此使用 Kibana 吗?找不到足够的文档来执行此操作。
您可以使用 _reindex
API,它也可以重新索引多个索引。它是专门为此而建的。
示例:从每日索引重新索引到每月索引(8 月)
POST _reindex?slices=10&refresh
{
"source": {
"index": "myindex-2019.08.*"
},
"dest": {
"index": "myindex-2019.08"
}
}
监控重建索引任务(等到完成)
GET _tasks?detailed=true&actions=*reindex
检查是否创建了新索引
GET _cat/indices/myindex-2019.08*?v&s=index
您可以删除旧索引
DELETE myindex-2019.08.*
来源:
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html
Bash 重新索引所有与模式匹配的索引的脚本:https://gist.github.com/hartfordfive/e507bc47e17f4e03a89055918900e44d
如果你想过滤一些字段并从索引中重新索引它,你可以使用它。
POST _reindex
{
"source": {
"index": "auditbeat",
"query": {
"match": {
"agent.version": "7.6.0"
}
}
},
"dest": {
"index":"auditbeat-7.6.0"
}
}
我正在使用 Elasticsearch 5.1.1 并使用 ES 提供的默认映射创建了 500 多个索引。
现在我们决定使用动态模板。 为了将此 template/mapping 应用于旧索引,我需要重新索引所有索引。
最好的方法是什么?我们可以为此使用 Kibana 吗?找不到足够的文档来执行此操作。
您可以使用 _reindex
API,它也可以重新索引多个索引。它是专门为此而建的。
示例:从每日索引重新索引到每月索引(8 月)
POST _reindex?slices=10&refresh
{
"source": {
"index": "myindex-2019.08.*"
},
"dest": {
"index": "myindex-2019.08"
}
}
监控重建索引任务(等到完成)
GET _tasks?detailed=true&actions=*reindex
检查是否创建了新索引
GET _cat/indices/myindex-2019.08*?v&s=index
您可以删除旧索引
DELETE myindex-2019.08.*
来源:
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html
Bash 重新索引所有与模式匹配的索引的脚本:https://gist.github.com/hartfordfive/e507bc47e17f4e03a89055918900e44d
如果你想过滤一些字段并从索引中重新索引它,你可以使用它。
POST _reindex
{
"source": {
"index": "auditbeat",
"query": {
"match": {
"agent.version": "7.6.0"
}
}
},
"dest": {
"index":"auditbeat-7.6.0"
}
}