我有两个 solr 实例,一个用于开发和索引准备,第二个是为用户的请求提供服务(部署系统)。开发solr采用本地模式,部署采用云模式。
在开发中完成索引后,我必须将其索引模式化以进行部署。当两个系统上的核心名称不同时,我该怎么做。
是否有更好的同步开发和部署 solr 的方法?
除非两个集群在后台具有完全相同的配置(即相同数量的节点、副本等),否则直接索引到生产节点是最简单的解决方案。如果配置相同,可以使用Backup and restore functionality for SolrCloud使其发挥作用。
否则,您将拥有一组与在所有服务器节点上部署它所需的结构不匹配的索引文件。
如果您只为每个集合使用单个分片(添加可选副本),则可以放弃云模式并返回旧式复制,即您索引到主节点,而用于查询所有节点的节点则从该节点复制其索引。
如果您想要这样做的原因是因为您不想在索引完成之前公开任何新数据,则可以通过其他两种更好的方法来实现:
为常规集合建立索引,但在添加所有文档之前不要调用提交。除非您提交,否则查询客户端将看不到任何更改。
创建当前集合的别名。对来自客户端的所有查询使用集合别名。索引到集合的副本(使用与原始集合使用的相同配置集创建一个新集合)。完成后,将别名指向新集合并删除旧集合。每次更新索引时重复此操作。
我是一名优秀的程序员,十分优秀!