将 Solr 从 6.x 升级到 8.x 并保留数据

Upgrading Solr from 6.x to 8.x and Keeping the data

我正在尝试从 Solr 6.x 升级到 8.x 我正面临 keeping/saving/importing 我拥有的旧数据的问题。

我尝试过的方法

  1. 使用相同的 solr 目录——这是一个大失败 xD

  2. 备份/恢复:

    如文档中所述,我设法使用 Solr 6 创建备份,但当我尝试恢复它时,它显示一条 OK 消息,但它没有 restore/import 任何数据,collection 留空。

    返回的消息是

    {
      "responseHeader":{
        "status":0,
        "QTime":10},
      "status":"OK"}
    
  3. 正在从 collections:

    导出查询结果

    我导出了空查询的结果以获取所有 object 并将结果保存为 json 文件,然后尝试使用 curl 命令再次导入它。我收到版本冲突消息。 除非我删除每个文档的结果 header 和版本字段,但这样我会丢失所有索引。这是一个手动过程

有什么方法可以轻松无缝地做到这一点。以及如何re-index重新导入数据后如何?

P.s 我看过这些问题,但它们对我的帮助不大。

如果有人面临同样的问题,我会 post 在这里对我有用的。 经历 7.x 对我没有用,所以这里是我做了什么以及我是如何解决它的。

我创建了一个 java 应用程序,它将通过 rest 请求将所有数据导出到 Solr,并将结果保存到 json 文件中,同时删除“版本”字段。 (我添加了分页,批量保存数据,所以不会有大文件)

然后在不同目录下安装新的 Solr 8.x,并删除旧的 solr。

该工具会将这些文件读取到相同对象的列表中(如果您想保存您拥有的索引),然后通过 post 请求将它们保存在新的 Solr 数据库中。 (如果你没有索引或任何其他特殊的东西,它可以通过 post 请求直接从 json 文件到 solr 来完成)

希望这对你们有帮助, 谢谢

P.S。 感谢@MatsLindh 的帮助,让内容更清晰