Play Framework 2 とストレージ用の MongoDB を使用して、Java/Scala でテキストを共有するためのサイトを開発しています。現在、検索ページを開発中です。もちろん、従来のテキストフィールド検索だけでなく、2 種類のフィルターもあります。
- 鬼ごっこ
- 年間/月/週の最高評価/最多閲覧数
例えば、「ファンタジー」というタグがついたものの中から、今週の○○件のベストテキストを取得することができます。私の言いたいことがわからない場合は、Pornhub を考えてみてください。;)
クエリの実行方法はわかりましたが、パフォーマンスの問題が心配です。私はパフォーマンスとクエリの最適化について本当に初心者であり、MongoDB の初心者であるため、何万ものテキストを検索、並べ替え、ランク付けする大きなクエリの影響を恐れています。当然、キャッシュシステムを考えましたが、クエリごとに異なる可能性があるため、実装方法がわかりません。また、毎日深夜 (たとえば) に更新される一時的なコレクションとジョブも考えましたが、やはり組み合わせが多すぎます。
では、それをモデル化するために使用できるテクニックと「トリック」は何ですか? 何か考えはありますか?そのために設計された検索フレームワークはありますか? それとも、MongoDB がその種の並べ替えとランキングを非常にうまく処理することを心配しすぎているのでしょうか。
はっきりしたいと思います。ご助力ありがとうございます!