4

ItemRails アプリに検索可能なモデルがあります。

いくつかの条件を満たすものを除いて、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 に答える