我的Rails应用程序中有一个可搜索的Item
模型。
我想索引ElasticSearch中的大部分内容,除了满足某些条件的内容。
我该怎么做?
在模型中覆盖update_index
是否可以接受?
我知道我也可以将它们全部索引,并在搜索中过滤掉它们。但它们永远不会被搜索,所以我根本没有看到索引它们的理由。
答案 0 :(得分:7)
最简单的方法是自己处理索引钩子,如README中所述:
请注意,您可能希望跳过包含特殊的Tire :: Model :: Callbacks模块 例如,当您的记录通过某些外部机制(...)或您时被索引时 需要更好地控制如何在索引中添加或删除文档:
class Article < ActiveRecord::Base
include Tire::Model::Search
after_save do
update_index if state == 'published'
end
end