如何将 Solar 一个实例与单独系统上的第二个实例同步

How to synchronize Solr one instance to the second one on seperate system

我有两个 solr 实例,一个用于开发和索引准备,第二个用于为用户的请求(部署系统)提供服务。开发solr是本地模式,部署是云模式。

开发中的索引完成后,我必须将其索引模式化以进行部署。当两个系统上的核心名称不同时我该怎么做。

是否有更好的同步开发和部署 solr 的方法?

除非两个集群在幕后具有完全相同的配置(即相同数量的节点、副本等),否则直接索引到您的生产节点是最简单的解决方案。如果配置相同,您可以使用 Backup and restore functionality for SolrCloud 使其工作。

否则,您将拥有一组与跨所有服务器节点部署它所需的结构不匹配的索引文件。

如果您只为每个 collection 使用一个分片(添加可选副本),则放弃云模式并返回到旧学校复制会起作用,您可以在其中索引到主节点和用于查询的节点都从该节点复制它们的索引。

如果您想这样做的原因是您不想在索引完成之前公开任何新数据,您可以通过另外两种更好的方法实现:

  1. 索引到您的常规 collection,但在添加所有文档之前不要调用提交。除非您提交,否则查询客户端将看不到任何更改。

  2. 为当前 collection 创建别名。对来自客户的所有查询使用 collection 别名。索引到您的 collection 的副本(使用与原始 collection 相同的配置集创建一个新的 collection)。完成后,将别名指向新的 collection 并删除旧的。每次更新索引时重复此操作。