我有一台托管了Solr环境的服务器。我想每周更新我们的Solr数据库包含的数据。
我有几个解决方案,但我想知道一个是否可能,以及哪个会更好:
我的第一个解决方案是在两个服务器上都有2个具有Solr环境的服务器,当一个服务器正在更新时,只需切换网址以连接到Solr并连接到另一个。
我的另一个解决方案是我不知道该怎么办。有没有办法切换Solr环境查看的数据源,而无需重新启动或删除任何当前搜索。
如果有人有任何想法,我将不胜感激。
答案 0 :(得分:2)
根据数据的大小,您可以在执行更新时保持Solr核心运行。首先发出一个删除,然后索引数据,最后提交更改。在发布提交之前不会看到新的索引状态,这允许您在等待索引完成时提供旧数据。
另一种选择是使用核心管理员按照您的提及切换核心,类似于copying data into other cores(删除mergeindex命令)。
如果您还在讨论在仍然提供内容的同时更新和升级实际的Solr版本或应用程序服务器,那么让第二台服务器从主服务器复制索引是获得更多冗余的简单方法。这样,您可以在维护第一个服务器时继续从第二个服务器提供查询,然后以相反的方式执行此操作。将您的客户端指向HTTP负载平衡器,并将维护的服务器从服务请求的服务器列表中删除。这也可以使您抵御单个硬件故障等。
还可以选择设置SolrCloud,但这可能需要更多的重组。