我有一个模型,该模型可以部署延迟的作业,以更新其某些属性。该模型被声明为“可搜索” ...

searchable do
  text :content, :stored => true
end


...我认为保存后会重新编制索引。在测试中,情况似乎并非如此。如果我运行:rake sunspot:reindex,则一切正常。是什么导致此问题?

最佳答案

如Jason所述,您可以调用Sunspot.commit_if_dirty来从客户端发出提交。

从服务器配置方面,另一种方法是在autoCommit中设置solrconfig.xml属性,以在对索引进行更改时自动发出提交。大多数站点的60000毫秒(一分钟)的maxTime就足够了。

在生产应用程序中使用autoCommit可能是更明智的选择,在该应用程序中,大量提交很容易影响Solr服务器的性能。实际上,当您的站点开始获得大量更新时,使用Sunspot禁用其auto_commit_after_request option是一个好习惯。

最后,autoCommit的优点是能够设置它并忘记它。

Websolr,我们的默认设置是忽略客户端发出的支持autoCommit的提交。

关于ruby-on-rails - 保存后,sunspot_rails不会重新建立模型索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3632278/

10-09 04:20