由于我怀疑我的设置是相当传统的,所以我想首先提供一些上下文。我们的Solr设置涉及三种环境:
在大多数情况下,这运作良好。我们有很多记录,所以做一个完整的重新索引需要几个小时(尽管急切加载和使用后台作业来并行化工作)。但这并不太可怕,因为我们不需要经常完全重新索引。
但是另一个场景开始变得非常烦人......我们经常需要用生产数据填充我们的本地机器(或登台环境)(即基本上从生产中获取SQL转储并管道它进入我们的本地数据库)。我们一直这样做的错误修正和诸如此类的。
此时,由于我们的数据已更改,因此我们的本地Solr索引已过期。因此,如果我们希望我们的搜索能够正常工作,我们还需要重新索引本地Solr服务器,并且需要非常长的时间。
现在的问题是:我想简单地将生产索引复制到我的机器上(即概念上类似于SQL转储但是对于Solr服务器而不是数据库),而不是完全重新索引。我已经用Google搜索了足够的知道这是可能的,但没有看到任何特定于Websolr / Sunspot的解决方案。这些是常见的工具,我认为其他人必须已经想到这一点。
提前感谢您的帮助!
答案 0 :(得分:3)
Solr(和websolr)更好的秘密之一:您可以使用Solr Replication API在两个索引之间复制数据。
如果您正在复制生产索引" prod54321"进入QA索引" qa12345",然后您在QA索引的fetchindex
处理程序上使用replication
命令启动复制。这是一个使用cURL快速命令来近似的。
curl -X POST https://index.websolr.com/solr/qa12345/replication \
-d command=fetchindex \
-d masterUrl=https://index.websolr.com/solr/prod54321/replication
(请注意两个网址上replication
请求处理程序的引用。)