如何在独立系统上将Solr一个实例同步到第二个实例

时间:2018-07-09 07:17:24

标签: linux indexing solr lucene solrcloud

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

在完成开发索引之后,我必须将其索引设置为部署状态。当两个系统上的核心名称不同时,我该怎么办。

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

1 个答案:

答案 0 :(得分:1)

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

否则,您将拥有一组索引文件,这些索引文件与在所有服务器节点上部署索引文件所必需的结构都不匹配。

如果您仅对每个集合使用一个分片(添加可选副本),则可以删除云模式并返回到旧式复制,在此情况下,您可以索引到主节点和用于查询所有节点的节点而是从此节点复制其索引。

如果要执行此操作的原因是因为您不想在索引编制完成之前公开任何新数据,则可以通过其他两种更好的方法来实现:

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

  2. 创建当前集合的别名。将集合别名用于来自客户端的所有查询。索引到您的集合的副本中(使用与原始集合相同的配置集创建一个新集合)。完成后,将别名指向新集合,然后删除旧集合。每次更新索引时都要重复。

相关问题