将整个集合数据迁移到具有相同集合的另一个solr示例

fhg3lkii  于 2022-10-21  发布在  Solr
关注(0)|答案(1)|浏览(178)

我有两个相同的solr示例。一个用于生产,一个用于测试。我想将集合“NEWS”从prod迁移到test
prod和test都具有相同的集合和相同的配置。我只是想把数据从一个拷贝到另一个
在Solr有办法做到这一点吗?

mzillmmw

mzillmmw1#

如果服务器可以访问公共共享网络位置,则可以在生产节点上发出BACKUP命令,然后在测试节点上发出RESTORE命令:

curl -X POST http://prodnode:8983/api/collections -H 'Content-Type: application/json' -d '
  {
    "backup-collection": {
      "name": "techproducts_backup",
      "collection": "techproducts",
      "location": "file:///path/to/my/shared/drive"
    }
  }
'

curl -X POST http://testnode:8983/api/collections -H 'Content-Type: application/json' -d '
  {
    "restore-collection": {
      "name": "techproducts_backup",
      "collection": "techproducts_v3",
      "location": "file:///path/to/my/shared/drive"
    }
  }
'

如果没有网络驱动器,可以在本地创建备份,然后将其复制到另一个节点并在那里恢复。如果配置与您所说的相同,我会选择这条路线(它还将测试您是否能够进行备份和恢复)。
另一个选择是在DIH中使用SolrEntityProcessor-但DIH没有与9.x捆绑,因此如果您使用9.x,则必须自己安装社区项目。

<dataConfig>
  <document>
    <entity name="sep" processor="SolrEntityProcessor"
            url="http://127.0.0.1:8983/solr/db "
            query="*:*"
            fl="*,orig_version_l:_version_,ignored_price_c:price_c"/>
  </document>
</dataConfig>

第三种选择是使用/export端点或类似的CSV编写器,然后通过常规/update终结点将CSV文件直接导入到另一个节点。如果你有一个扁平的索引,CSV通常是最有效的交换格式。这将对数据进行实际的重新索引,并且可能不是您想要的。

相关问题