我有一台服务器,上面托管着Solr环境。我想每周更新我们的Solr数据库中包含的数据。
我有几个解决方案,但我想知道是否有可能,如果有,哪一个会更好:
我的第一个解决方案是在两台服务器上都有一个Solr环境,当其中一台服务器更新时,只需使用切换url即可连接到Solr并连接到另一台服务器。
我的另一个解决方案是我不知道该怎么做的。有没有一种方法可以切换Solr环境所查看的数据源,而无需重新启动它或删除任何当前搜索。
如果有人有任何想法,我们将不胜感激。
根据数据的大小,您可能只需要在更新时保持Solr核心的运行。首先发布一个删除,然后对数据进行索引,最后提交更改。在提交之前不会看到新的索引状态,这允许您在等待索引完成时提供旧数据。
另一种选择是使用core admin来切换内核,正如您所提到的,类似于将数据复制到其他内核中(放弃mergeindex命令)。
如果您还在谈论在提供内容的同时更新和升级实际的Solr版本或应用程序服务器,那么拥有第二个从主服务器复制索引的服务器是获得更多冗余的简单方法。这样,您就可以在维护第一个服务器的同时,继续从第二个服务器提供查询,然后以另一种方式进行查询。将客户端指向HTTP负载均衡器,并在服务器关闭时将维护的服务器从为请求提供服务的服务器列表中删除。这也将使您抵抗单一硬件故障等。
也可以选择建立SolrCloud,但这可能需要更多的重组。