elasticsearch 如何在elasticsearch中批量创建(导出/导入)索引?,elasticsearch,logstash,kibana,elasticsearch,Logstash,Kibana" /> elasticsearch 如何在elasticsearch中批量创建(导出/导入)索引?,elasticsearch,logstash,kibana,elasticsearch,Logstash,Kibana" />

elasticsearch 如何在elasticsearch中批量创建(导出/导入)索引?

elasticsearch 如何在elasticsearch中批量创建(导出/导入)索引?,elasticsearch,logstash,kibana,elasticsearch,Logstash,Kibana,我正在尝试按照说明从1.x>5.x升级我们的麋鹿堆栈。我不确定如何导出需要创建的索引列表,然后将该列表导入到新实例中。我已经创建了一个索引列表,使用“pretty”和不使用,但我不确定要使用哪种文件格式以及下一步如何处理该文件 create index指令不涉及如何一次创建多个文档,而bulk指令只涉及创建/索引文档,而不是创建索引本身。对于如何最好地遵循升级说明的任何帮助,我们将不胜感激 我显然没有足够的声誉来链接“创建索引”和“批量”指令,因此对此表示歉意。能够通过sed提供的索引列表创建一

我正在尝试按照说明从1.x>5.x升级我们的麋鹿堆栈。我不确定如何导出需要创建的索引列表,然后将该列表导入到新实例中。我已经创建了一个索引列表,使用“pretty”和不使用,但我不确定要使用哪种文件格式以及下一步如何处理该文件

create index指令不涉及如何一次创建多个文档,而bulk指令只涉及创建/索引文档,而不是创建索引本身。对于如何最好地遵循升级说明的任何帮助,我们将不胜感激


我显然没有足够的声誉来链接“创建索引”和“批量”指令,因此对此表示歉意。

能够通过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
#/bin/bash
同时阅读一些索引;做
curl-XPUT“localhost:9200/$some_index?pretty”—d'
{
“设置”:{
“索引”:{
“刷新间隔”:-1,
“复制副本的数量”:0
}
}
}'
睡眠1

只需一个curl命令,您就可以创建一个索引,在文档到达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下面答案中的shell解决方案不适用于您?@Val“相同的curl命令”:不。我的意思是,这是一个很好的解决方法,也是我使用的类型,但这与要求的正好相反。@JXG那么您希望使用一个curl命令,一次创建N个索引,并使用相同的索引设置吗?@JXG您的索引名有共同的模式吗?如果是的话,一种方法是创建一个索引,如果我处理数百个索引,这将是有意义的。如果我有,比如说,3,似乎开销不足以证明模板工作的合理性。什么开销?创建模板不需要任何开销,这只是简化索引创建的一种方法。如果只有3个索引,我不太明白为什么必须运行一个curl命令那么重要。这是在测试中(实际上是2个索引),所以它经常运行。Elastic有一个优雅的API,可以获取多个索引,甚至可以删除它们。但是没有类似的创造。这需要一个解释。老实说,这并不重要,但它让我有些恼火,更老实说,我做过的任何事情都没有那么重要。如果它在测试中并且经常运行,那么最好利用可以在拆卸过程中创建和删除的索引模板。获取和删除索引不需要任何有效负载,而创建索引则需要任何有效负载,这可能就是不支持一次创建多个索引的原因,因为不同的索引可能需要不同的设置。