我正在开发一个围绕在 Java/Scala 中共享文本的网站,使用 Play Framework 2 和 MongoDB 进行存储。我目前正在开发搜索页面。当然会有经典的文本字段搜索,但也有两种类型的过滤器:
- 标签
- 最高评价/每年/每月/每周观看次数最多
例如,有可能在带有“幻想”标签的文本中获得本周的 xxx 个最佳文本。如果你不明白我的意思,想想 Pornhub。;)
我知道如何进行查询,但我担心性能问题。我是一个关于性能和查询优化的真正菜鸟,也是一个 MongoDB 初学者,所以我害怕会在数以万计的文本中寻找、排序和排名的大查询的影响。自然,我想到了一个缓存系统,但我不知道如何实现它,因为每个查询可能不同。我还想到了每天午夜(例如)与工作更新的临时集合,但同样有太多不同的组合。
那么我可以用来建模的技术和“技巧”是什么?你有什么想法吗?是否有为此设计的搜索框架?还是我太担心了,而 MongoDB 可以很好地处理这种排序和排名?
我希望清楚。非常感谢您的帮助!