如何在elasticsearch中批量创建(导出/导入)索引?
问题描述:
我试图按照re-index from remote说明从1.x> 5.x升级我们的ELK堆栈。我不知道如何导出我需要创建的索引列表,然后将该列表导入到新实例中。我创建了一个使用this command的索引列表,这两个列表都带有“漂亮”和“不漂亮”,但我不确定要使用哪种文件格式以及下一步如何处理该文件。如何在elasticsearch中批量创建(导出/导入)索引?
创建索引指令并不涉及如何一次创建多个指令,而批量指令仅涉及创建/索引文档,而不是创建索引本身。任何关于如何最好地遵循升级说明的帮助将不胜感激。
我显然没有足够的声望来链接“创建索引”和“批量”指令,所以对此表示歉意。
答
之所以能够使用sed,然后喂通过下面的脚本文件,通过馈通的索引列表创建索引的格式列表来实现:
#! /bin/bash
while read some_index; do
curl -XPUT "localhost:9200/$some_index?pretty" -d'
{
"settings" : {
"index" : {
"refresh_interval" : -1,
"number_of_replicas" : 0
}
}
}'
sleep 1
done <$1
如果任何人都可以在任何方向指向了我Elasticsearch中预先存在的机制,但请。
答
使用单个curl命令,您可以创建一个index template,这将在文档碰到您的ES 5.x集群时触发索引创建。
基本上,这个单个curl命令将创建一个索引模板,它将为每个新创建的索引启动。然后,您可以使用“从远程重新索引”技术将文档从ES 1.x移动到ES 5.x,并且不用担心索引创建,因为索引模板会处理它。
curl -XPUT 'localhost:9200/_template/my_template' -H 'Content-Type: application/json' -d'
{
"template": "*",
"settings": {
"index.refresh_interval" : -1,
"index.number_of_replicas" : 0
}
}
'
@JXG从下面的答案壳解决方案没有为你工作? – Val
@Val“相同的卷曲命令”:不。我的意思是,这是一个很好的解决方法,这是我使用的类型,但它与要求的相反。 – JXG
@JXG所以你想要一个单一的curl命令,将创建N索引在一个镜头与相同的索引设置? – Val