我正在做一个涉及 solr sunspot gem 的 rails 项目。我保留了默认行为以自动更新模型保存的索引,但我想知道是否有办法在批量创建对象时暂时禁用索引,例如在 rake db:seed 过程中。使用种子命令时,我希望它会添加所有对象,然后执行一个大的重新索引调用来更新整个表。有任何想法吗?
谢谢!
我正在做一个涉及 solr sunspot gem 的 rails 项目。我保留了默认行为以自动更新模型保存的索引,但我想知道是否有办法在批量创建对象时暂时禁用索引,例如在 rake db:seed 过程中。使用种子命令时,我希望它会添加所有对象,然后执行一个大的重新索引调用来更新整个表。有任何想法吗?
谢谢!
您可以将 Sunspot 的会话设置为 StubSessionProxy。
还有这个。
基本上,您应该可以将其添加到sunspot.yml:
development:
disabled: true
如果您直接在数据库上运行一些任务或查询,这非常有用。但是,如果您使用此设置运行您的应用程序,并且在您的代码中的任何位置,您都会有类似的内容:
Sunspot.config.pagination.default_per_page = 50
然后你会遇到这样的错误:
undefined method `config' for #<Sunspot::Rails::StubSessionProxy:0x007ff6ee33df28>