首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >保存后sunspot_rails未对模型重新编制索引

保存后sunspot_rails未对模型重新编制索引
EN

Stack Overflow用户
提问于 2010-09-03 08:37:57
回答 2查看 6.3K关注 0票数 17

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

代码语言:javascript
复制
searchable do
  text :content, :stored => true  
end

..。我以为会在保存后重新编入索引。在测试中,情况似乎并非如此。如果我运行:rake sunspot:reindex,那么一切都会按预期运行。导致此问题的原因可能是什么?

EN

回答 2

Stack Overflow用户

发布于 2010-12-09 07:44:44

索引将仅反映调用Sunspot.commit之后的更改。当您运行rake sunspot:reindex时,会自动执行此操作。

Sunspot的Rails插件也有一个auto_commit_after_request配置选项,它会在每次请求后调用Sunspot.commit_if_dirty,但这不会被你的后台进程触发。

你最好的办法就是调用Sunspot.commit_if_dirty作为你延迟工作的最后一件事。

票数 7
EN

Stack Overflow用户

发布于 2013-10-18 01:08:57

我和你有完全相同的问题-当我测试我的搜索功能时,太阳黑子永远不会向solr发出提交。如果我手动调用Sunspot.commit,一切正常。我摆弄了一下auto_commit_after_request,但这在默认情况下是正确的,所以它不应该有什么不同。

因此,经过进一步的研究,我发现Sunspot不会自动发出提交,除非在web请求的上下文中进行更改。如果您正在从测试或后台工作中进行更改,则必须手动调用Sunspot.commit。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3632278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档