Item
Rails アプリに検索可能なモデルがあります。
いくつかの条件を満たすものを除いて、ElasticSearch の大部分にインデックスを付けたいと考えています。
どうやってやるの?
update_index
モデルでのオーバーライドは許容できる解決策ですか?
それらすべてにインデックスを付けて、検索で除外することもできます。しかし、それらは検索可能になることはないので、インデックスを作成する理由はまったくありません。
Item
Rails アプリに検索可能なモデルがあります。
いくつかの条件を満たすものを除いて、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