elasticsearch 在ElasticSearch中创建空别名
我正在开发一个java应用程序来创建elasticSearch索引。该索引当前每周在一台dev机器上构建一次,集群在其他(test&prod)机器上的现有集群上手动复制。新方案仍然包括每周从头开始重建索引 我正在使用5.6.3和低级和高级rest客户端进行更新。经过一些初步调查(并得到了相当多的帮助),我打算使用别名进行2(或3)阶段的开发 最初,我将在dev上为现有索引添加别名,将所有新数据写入别名,然后用别名替换索引。我能想到的其他替代方案是
elasticsearch 在ElasticSearch中创建空别名,
elasticsearch,
elasticsearch-5,
elasticsearch,
elasticsearch 5,我正在开发一个java应用程序来创建elasticSearch索引。该索引当前每周在一台dev机器上构建一次,集群在其他(test&prod)机器上的现有集群上手动复制。新方案仍然包括每周从头开始重建索引 我正在使用5.6.3和低级和高级rest客户端进行更新。经过一些初步调查(并得到了相当多的帮助),我打算使用别名进行2(或3)阶段的开发 最初,我将在dev上为现有索引添加别名,将所有新数据写入别名,然后用别名替换索引。我能想到的其他替代方案是 每次都重新创建集群,我认为这将永远是 相当手工的
“添加注释作为答案”:正确。应用程序不必担心数据是第19个还是第20个。应用程序只需指向alias appind即可。数据还原/加载完成后,您可以使用单个POST请求将别名从旧索引交换到新索引。您可以在同一请求中执行删除操作和添加操作,以将别名从旧索引交换到新索引。我不确定空别名能为您带来什么。您可以始终使用单个别名。实时应用程序将指向别名名称。加载过程将创建一个新索引,然后您可以将别名从旧索引切换到新索引。单独删除所有文档不是一个好主意。相反,您可以删除该索引。此外,您还可以浏览Elasticsearch Curator以获取索引的快照/还原。好吧,我想我误解了。我认为别名是索引元数据的一部分,因此您无法将别名与另一个索引交换。我正在考虑将应用程序指向索引并创建临时别名以重建索引,然后交换别名s返回。实际上,别名可以指向不同的索引,因此更合理的做法是相反,将应用程序设置为查看别名([appind]),然后将其指向名为appind[ddmmyyyhhmm]的索引(每周更改一次)。(是否正确!)正确。应用程序不必担心数据是第19个还是第20个。它只需指向alias appind。数据还原/加载完成后,您可以使用单次post交换别名。您可以在同一请求中执行删除操作和添加操作,以将别名从旧索引交换到新索引。