我的 Rails 应用程序中有一个可搜索的Item
模型。
我想索引 ElasticSearch 中的大多数,除了那些满足某些条件的。
我怎样才能做到这一点?
在模型中覆盖update_index
是可接受的解决方案吗?
我知道我也可以将它们全部编入索引,并在搜索中过滤掉它们。但是它们永远不会被搜索到,所以我根本看不到索引它们的理由。
我的 Rails 应用程序中有一个可搜索的Item
模型。
我想索引 ElasticSearch 中的大多数,除了那些满足某些条件的。
我怎样才能做到这一点?
在模型中覆盖update_index
是可接受的解决方案吗?
我知道我也可以将它们全部编入索引,并在搜索中过滤掉它们。但是它们永远不会被搜索到,所以我根本看不到索引它们的理由。
最简单的事情是自己处理索引挂钩,如README中所述:
请注意,您可能希望在特殊情况下跳过包含 Tire::Model::Callbacks 模块,例如当您的记录通过某种外部机制(...)进行索引时,或者当您需要更好地控制文档添加到或从索引中删除:
class Article < ActiveRecord::Base
include Tire::Model::Search
after_save do
update_index if state == 'published'
end
end