ruby-on-rails - Sunspot Rails - 防止在保存时索引

标签 ruby-on-rails solr sunspot sunspot-rails sunspot-solr

默认情况下,作为保存回调的一部分,sunspot solr gem 向 solr 服务器发出索引命令。这种行为在我的大多数应用程序中是可以接受的,但在其中的某些部分(尤其是用于批量处理的 rake 任务中的那些),我想在不与 solr 服务器进行任何交互的情况下保存我的模型实例。我如何实现这一目标?

最佳答案

根据docs我觉得你应该加auto_index: false到您的可搜索块,即:

class Foo < ActiveRecord::Base
  searchable auto_index: false do
    # your search fields here
  end
end

然后您可以使用以下方法手动重新索引记录:
# On a class itself
Person.reindex
Sunspot.commit # or commit(true) for a soft commit (Solr4)

# On mixed objects
Sunspot.index [post1, item2]
Sunspot.index person3
Sunspot.commit # or commit(true) for a soft commit (Solr4)

# With autocommit
Sunspot.index! [post1, item2, person3]

关于ruby-on-rails - Sunspot Rails - 防止在保存时索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18668185/

相关文章:

ruby-on-rails - Paperclip 的路径 missing.png

performance - Nutch 段文件夹每天都在增长

ruby-on-rails - solr,太阳黑子,错误请求,非法字符

ruby-on-rails - 带有标量字段和全文搜索的 Rails Sunspot Solr any_of

ruby-on-rails - 部分在 ActiveAdmin 中呈现两次

ruby-on-rails - ruby on Rails框架中有核心函数find_by_controller吗?

ruby-on-rails - 不返回任何内容的 Mongoid 标准

solr - 如何配置 Solr 以提高索引速度

solr - 限制 Solr 中 MoreLikeThis 的输出

ruby-on-rails - Heroku上的黑子错误