Solr Sunspot - 不会自动重新索引对象 运行

Solr Sunspot - Reindexing objects is not automatically running

我正在使用 Sunspot Solr 在我们的 Ruby on Rails 应用程序中使用 MangoDB 进行索引和搜索 数据库(Mongo 映射器)

搜索效果很好,但当我对数据库进行更改时,对象不会自动索引到 Solr。

我尝试手动索引 class 本身:

Top.reindex Sunspot.commit

或者,我在 sunspot.yml 上添加了: auto_commit_after_request:真 我还在 solrconfig.xml 上以一定间隔自动提交:

<autoCommit>
<maxDocs>10000</maxDocs>
<maxTime>15000</maxTime>
</autoCommit>

所有这些解决方案都无法自动重新索引我的对象,除非我使用 rake 任务重新索引所有对象:

bundle exec rake sunspot:reindex 

还有其他解决方案吗?

非常感谢。

如果您使用 ActiveRecord (check this).

Sunspot 应该默认重新索引

这里的问题是您使用的是 Mongo,而不是 AR。为此,我找到了一个集成了 sunspotmongo mapper 的 gem。你可能想要 check it and see if it solves your problem on auto-indexing - gem is supposed to solve it (check this)

如果这不起作用,您可以尝试对涉及的模型进行一些手动索引,类似于 ActiveRecord 挂钩,例如在用户模型上:

after_save { |user| Sunspot.index!(user) }
after_destroy { User.reindex; Sunspot.commit }