4

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

我想索引 ElasticSearch 中的大多数,除了那些满足某些条件的。

我怎样才能做到这一点?

在模型中覆盖update_index是可接受的解决方案吗?


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

4

1 回答 1

7

最简单的事情是自己处理索引挂钩,如README中所述:

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

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

  after_save do
    update_index if state == 'published'
  end
end
于 2013-03-02T08:25:29.160 回答