投票ごとにインデックスを作成することは想像できません。それはサーバーに不適切な負担をかけるでしょう。
私は自分のプロジェクトで同様のことをしようとしていて、投票された後にオブジェクトにインデックスを付けるための最良の方法を理解できないため、これについて言及します。
私はSunspot-Solrを使用しています。
投票ごとにインデックスを作成することは想像できません。それはサーバーに不適切な負担をかけるでしょう。
私は自分のプロジェクトで同様のことをしようとしていて、投票された後にオブジェクトにインデックスを付けるための最良の方法を理解できないため、これについて言及します。
私はSunspot-Solrを使用しています。
確かに言えませんが、オープンソースプロジェクトです。http://code.reddit.com/
私は遅れていることは知っていますが、今日、redditはあなたの質問に新しい光をもたらす方法で彼らの検索を修正しました。答えは、Solrのような検索エンジンはredditの投票のような頻繁な更新を処理できないということです。彼らは現在IndexTankを使用しています、そしてそれは間違いなく機能します!(はい、私は開発者であり、IndexTankです)
投票数を介して検索結果に影響を与えたい場合は可能だと思いますが、オフライン/遅延方式で行う必要があります。投票が検索結果に与える「リアルタイム」が少ないほど、Solrがうまく機能すると思うので、Redditは悪いユースケースです。6時間、12時間、または24時間ごとに投票を更新し、投票されたドキュメントのサブセットに対してのみ更新します。ある時点で、Solrドキュメントの一部だけを更新できるようになります。これは役に立ちます。
実際、彼らは投票ごとに1回インデックスを作成しています。
新しい検索(IndexTankを使用)は、変更されるたびに賛成票/反対票/ユーザーカルマを更新するように設計されています。
indextankの良いところは、テキストデータのインデックスを再作成しなくても、スコアリングシステムに影響を与えるドキュメント変数(数値)を更新できることです。これにより、膨大な数の(ドキュメント変数)更新があっても、インデックスを高速に保つことができます。