将 solr 独立索引迁移到 solrcloud

Migrate solr standalone index to solrcloud

有一些 solr 核心的索引,我将它们从 solr4 转换为 solr6,但在 solr 独立模式下。所以他们没有 solrcolud 需要的 "version" 字段。

现在我想迁移到solrcloud 6,我需要把它们放在集群下。因为当我把它们放在数据目录的 solrcloud leader core 下时,这些索引中不存在版本字段,所以分片中的副本没有像我看到的那样更新。所以我决定通过 lucene 阅读它们,获取每个文档字段,将它们添加到 solrdoc,然后将它们逐个文档放入 solrcloud 中。但是因为有些字段没有存储在这些索引中,所以这些索引中存在的所有字段都不会移动到那里。

最后看来除了重新索引我别无他法。 如果有更好的想法或解决方案可以帮助我更轻松地迁移,我将不胜感激。

如果有机会重建索引,那就去做吧,它最终会是最好的(你必须处理两个不同的问题:a)从 4.X 迁移到 6.0 和 b)从独立到 SolrCloud...它会很混乱)。

如果您无法重建索引:

  1. 您的所有字段是否已存储或是否具有 docValues=true?如果是这样,您可以获得文档的原始内容。阅读它们并使用 solrj 或一些脚本对其进行索引。
  2. 如果没有,并且你有一个版本字段:尝试手动将索引放入Solrcloud。不是直截了当,但可能。
  3. 如果你没有 version 字段,我认为不可能将索引按原样放在 Solrcloud 中(尽管网上有些 post你认为是)。您可以尝试编写一些 lucene 代码以将 version 字段添加到所有文档(具有有意义的值),但这应该是最后的手段。