防止某些模型在Rails应用程序中使用Tire编制索引

时间:2013-03-01 19:54:46

标签: elasticsearch tire

我的Rails应用程序中有一个可搜索的Item模型。

我想索引ElasticSearch中的大部分内容,除了满足某些条件的内容。

我该怎么做?

在模型中覆盖update_index是否可以接受?


我知道我也可以将它们全部索引,并在搜索中过滤掉它们。但它们永远不会被搜索,所以我根本没有看到索引它们的理由。

1 个答案:

答案 0 :(得分:7)

最简单的方法是自己处理索引钩子,如README中所述:

  

请注意,您可能希望跳过包含特殊的Tire :: Model :: Callbacks模块   例如,当您的记录通过某些外部机制(...)或您时被索引时   需要更好地控制如何在索引中添加或删除文档:

class Article < ActiveRecord::Base
  include Tire::Model::Search

  after_save do
    update_index if state == 'published'
  end
end