Rails 3 と Sunspot solr 3.5 を使用しています。私のアプリケーションは、Solr を使用してユーザー生成コンテンツのインデックスを作成し、他のユーザーが検索できるようにします。目標は、ユーザーがこのデータをアップロードしてからできるだけ早く検索できるようにすることです。これがリアルタイム検索に該当するかどうかはわかりません。
私のアプリケーションには 2 つのモデルがあります
- 投稿
- PostItems
ユーザーが post_item レコードで提供される特定の説明に基づいて検索すると、対応する投稿オブジェクトが検索で使用可能になるように、投稿アイテムのデータを含めることで投稿にインデックスを付けます。
ユーザーは頻繁に post_item を更新するため、新しい post_item が追加されるたびに、検索中に新しい post_item を使用できるように、対応する投稿オブジェクトのインデックスを再作成する必要があります。
したがって、現時点では、新しい post_item オブジェクトを受け取るたびに実行します
post_item.post.solr_index! #
このドキュメントによると、インデックスとコミットを即座に更新します。これは機能しますが、これはこのシナリオでインデックス作成を処理する正しい方法ですか? ここで、検索中に index を呼び出すと solr が壊れる可能性があることを読みました。また、頻繁に手動でインデックスを呼び出すこともできません。
これを行う正しい方法に関する提案。ElasticSearch に切り替える以外の選択肢はありますか