【发布时间】:2020-08-20 00:36:53
【问题描述】:
我知道我们不能直接重命名任何 solr 集合。我们可以创建一个指向集合的别名。但是我们需要重命名集合。有没有办法在 solrcloud 中实现以下目标? (版本:apache-solr 8.4.1 版)
- 我们有一个 main_collection(我们目前正在使用它)
- 我们有第二个集合 temp_collection(我们计划移动)
- 我们不能同时迁移两者
- 我们有很多应用程序被硬编码为使用 main_collection
- 我们在 temp_collection 中有大量索引。
我们最初的想法是将 main_collection 重命名为 backup_collection,然后将 temp_collection 重命名为 main_collection。
有没有办法达到同样的效果。这样我们就不会遇到应用程序的任何停机时间。
【问题讨论】:
-
请注意
RENAME-ing Solr 中的集合实际上不会更改集合的名称(即原始名称仍然存在于分片名称中,等等)。它 - 事实上 - 只是做你已经提到的,改变集合的别名。 “重命名集合会设置一个指向基础集合的标准别名,因此现在可以使用新名称在查询、索引和管理操作中引用相同的(未修改的)集合。”。使用别名是处理此问题的正确方法,无需大量停机。 -
谢谢@MatsLindh,我们可以创建与collection 同名的别名吗?在我们的例子中:main_collection?
-
我会尽量避免这种情况,但是重命名
main_collection和创建别名应该是一个相当快的过程,因此应该限制停机时间(也许几秒钟?先测试一下)。问题是你有对main_collection的硬编码引用,否则你可以创建aliased_collection_name,更新配置以指向它,然后在以后根据需要交换它。
标签: indexing solr lucene solrcloud solr4