Solr太阳黑子在不同的环境中

时间:2011-05-03 03:16:10

标签: ruby-on-rails ruby solr sunspot

所以我一直在使用Solr太阳黑子几天,并且在一个问题上一直有点疯狂。我搜索了许多不同的网站以寻找答案,但很多人似乎都有不同的想法。我试图弄清楚太阳黑子如何通过自动索引来管理不同环境中模型的索引/重建索引。这就是我的结论:

Dev / Prod:保存/更新对象会自动更新solr中该对象的索引

测试:保存/更新对象不会自动更新索引,您需要调用object.reindex!为了使它生效。

控制台:与测试相同。需要Reindex来正确更新solr。

这看起来是否正确?很长时间以来我的solr太阳黑子设置是否有问题,或者在这些不同的环境中它们是否工作不一样,这让我很伤心。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:9)

在Solr中更新文档后,您必须发出“提交”以告知Solr将更改写入磁盘并让它们开始出现在搜索结果中。 Sunspot :: Rails在Rails请求过程中自动处理这个问题,但除此之外(在测试中,从控制台),您需要明确地执行此操作。这是一个简单的Sunspot.commit

答案 1 :(得分:1)

更新索引有三种主要方法:

  1. object.index:标记索引的对象,但可能不会立即编入索引
  2. object.index !:立即索引对象
  3. Class.reindex:立即索引模型上的所有对象
  4. 听起来你应该在控制台上使用 .index!方法而不是 .index 方法。