如何用新的SOLR索引替换?

时间:2015-07-16 11:28:06

标签: solr

我有一个cron执行solr重建工作。

Cron运行clear index命令,删除当前索引。现在问题是这导致SOLR搜索功能在网站上停止,直到新的新索引可用。

如何确保旧索引可用,直到新索引不可用为止?

1 个答案:

答案 0 :(得分:3)

不要运行clear index命令。发出删除所有文档(例如,通过发送<delete><query>*:*</query></delete>而不发出提交。

索引所有新文档,完成后,发出提交。 Solr在发布提交之前不会显示更改,并继续提供旧内容,直到您告诉它删除旧内容并使用新内容。

另一种选择是创建一个新核心作为旧核心的副本,索引到该核心,然后在索引完成时切换核心。这样旧的查询将针对现有核心运行,直到新的核心准备好,然后在切换后您可以删除旧核心。

如果在SolrCloud模式下运行,可以使用collection alias功能实现,如果作为传统单个实例运行,则使用core swap功能。