1

私たちのプロジェクトのインデックス作成ソリューションとして、Sunspot を調査しています。ただし、情報が見つかりません。データの更新はどのように処理されますか。インデックスを作成したいクラスを「セットアップ」した場合、solr サーバーはオブジェクトへの変更についてどのように通知されますか?

さらに、次のシナリオを検討してください。

「has_many」シノニムのクラス Artwork があり、この方法でインデックスを作成します。

Sunspot.setup(Artwork)
  text :synonyms do
    synonyms.map { |s| s.name }
  end
end

「ラ・ジョコンダ」と「それほど大きな笑顔ではない」という同義語を持つアートワーク「モナ・リザ」が与えられました。最後のシノニムを更新すると、solr に通知され、"Mona Lisa" のインデックスが再構築されますか?

4

2 に答える 2

2

Sunspot::Rails と ActiveRecord モデルを使用している場合、モデルが保存されるたびに Solr 内のレコードのデータを自動的に更新するライフサイクル フックがあります。ただし、上記は純粋な Sunspot を使用しているように見えます。その場合、独自のライフサイクル フックを設定する必要があります。

after_save { |artwork| Sunspot.index(artwork) }

また、依存モデルの更新によって Solr の親ドキュメントを更新する必要がある場合 (たとえば、上記の Synonym モデルを直接更新する場合) には、独自のライフサイクル ロジックが必要になります。

于 2011-07-19T11:43:06.040 に答える