elasticsearch elasticsearch-ELK中索引的重新索引
对弹性搜索索引重新编制索引的最佳做法是什么?post有几个步骤涉及在重新索引之前停止logstash indexer,但这不是我的选择,因为它是一个生产服务器 我遇到一个问题,索引中没有*.raw字段,因为缺少默认映射模板。我使用了Elasticsearch找到的映射模板,并将我的ES集群配置为使用它,但我猜只有在创建新索引或显式重新索引现有索引时才会使用它 另外,elasticsearch elasticsearch-ELK中索引的重新索引,elasticsearch,indexing,logstash,kibana,elasticsearch,Indexing,Logstash,Kibana,对弹性搜索索引重新编制索引的最佳做法是什么?post有几个步骤涉及在重新索引之前停止logstash indexer,但这不是我的选择,因为它是一个生产服务器 我遇到一个问题,索引中没有*.raw字段,因为缺少默认映射模板。我使用了Elasticsearch找到的映射模板,并将我的ES集群配置为使用它,但我猜只有在创建新索引或显式重新索引现有索引时才会使用它 另外,/\u template?pretty返回了一个空响应,但是在添加上述模板之后,/\u template?pretty会显示一个新模
/\u template?pretty
返回了一个空响应,但是在添加上述模板之后,/\u template?pretty
会显示一个新模板,但是将创建的新索引会自动使用此新模板吗?或者我需要显式地配置ES并要求它使用它们吗
在此,我非常感谢您的帮助。执行此操作的最佳方法是使用一个指向实际索引的别名。(),类似于
my index alias
指向my-actual-index-20170101
POST /_aliases
{
"actions" : [
{ "add" : { "index" : "my-actual-index-20170101", "alias" : "my-index-alias" } }
]
}
向索引查询(或添加内容)时,始终使用别名
如果需要重新编制索引,可以将索引重新编制到另一个索引(my-actual-index-20170127
by example),重新编制索引后,可以更新别名以指向新索引
POST /_aliases
{
"actions" : [
{ "remove" : { "index" : "my-actual-index-20170101", "alias" : "my-index-alias" } },
{ "add" : { "index" : "my-actual-index-20170127", "alias" : "my-index-alias" } }
]
}
它将允许您在不更改任何代码/没有任何停机时间的情况下重新索引索引
现在,关于实际的重新索引问题——我一直在使用elasticsearch-reindex
node应用程序,并取得了很大成功()
它的用法很简单:
使用npm(npm安装-g elasticsearch reindex)安装后,您可以运行
elasticsearch-reindex -f http://localhost:9200/my-actual-index-20170101/{type of documents} -t http://localhost:9200/my-actual-index-20170127
使用新模板在另一个索引中重新编制文档索引(使用Kibana Sense)的简单方法可以是:
POST /_reindex
{
"source": {
"index": "source-index"
},
"dest": {
"index": "dest-index"
}
}
使用Elasticsearch执行许多不同操作(包括重新索引)的另一种方法是
其最新版本与ES 5.x和6.x兼容