Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Indexing 重命名ApacheSolr集合或类似的东西_Indexing_Solr_Lucene_Solrcloud_Solr4 - Fatal编程技术网

Indexing 重命名ApacheSolr集合或类似的东西

Indexing 重命名ApacheSolr集合或类似的东西,indexing,solr,lucene,solrcloud,solr4,Indexing,Solr,Lucene,Solrcloud,Solr4,我知道我们不能直接重命名任何solr集合。我们可以创建一个指向集合的别名。但是我们需要重命名集合。在solrcloud中有没有办法实现以下目标?(版本:ApacheSolr版本8.4.1) 我们有一个主集合(我们目前正在使用) 我们有第二个临时集合(我们计划将其移动) 我们不能两者兼而有之 我们有太多的应用程序是硬编码来使用主集合的 我们在temp_集合中有大量索引 我们最初的想法是将主集合重命名为备份集合,然后将临时集合重命名为主集合 有没有办法做到这一点。这样我们就不会在应用程序中遇到任何停

我知道我们不能直接重命名任何solr集合。我们可以创建一个指向集合的别名。但是我们需要重命名集合。在solrcloud中有没有办法实现以下目标?(版本:ApacheSolr版本8.4.1)

  • 我们有一个主集合(我们目前正在使用)
  • 我们有第二个临时集合(我们计划将其移动)
  • 我们不能两者兼而有之
  • 我们有太多的应用程序是硬编码来使用主集合的
  • 我们在temp_集合中有大量索引 我们最初的想法是将主集合重命名为备份集合,然后将临时集合重命名为主集合


    有没有办法做到这一点。这样我们就不会在应用程序中遇到任何停机

    您可以尝试以下步骤

  • 为新集合中的数据编制索引
  • 对所有数据编制索引后,为新集合创建别名。指定与旧集合相同的别名
  • 您的所有新请求都将重定向到新 收藏
  • 设置好所有内容后,可以删除旧的 收藏
  • 在这里您可以找到列出的所有集合API。

    请注意,在Solr中重命名集合实际上不会更改集合的名称(即原始名称仍存在于碎片名称中等)。实际上,它只是在做您已经提到的事情,更改集合的别名。“重命名集合将设置一个指向基础集合的标准别名,以便现在可以使用新名称在查询、索引和管理操作中引用相同(未修改)的集合。”。使用别名是处理此问题的正确方法,不会造成重大停机。感谢@MatsLindh,我们可以创建与集合同名的别名吗?在我们的例子中:main_collection?我会尽量避免这种情况,但是重命名
    main_collection
    和创建别名应该是一个相当快速的过程,因此停机时间应该是有限的(可能几秒钟?先测试一下)。问题是您有对
    main\u collection
    的硬编码引用,否则您可以创建
    aliased\u collection\u name
    ,更新配置以指向该集合,然后根据需要在以后交换该集合。