我正在开发一个围绕Java / Scala共享文本的站点,Play Framework 2和MongoDB用于存储。 我目前正在开发搜索页面。当然会有经典的文本字段搜索,但也有两种类型的过滤器:
例如,可以在标签为“fantasy”的那些中获得本周最佳xxx文本。如果你不明白我的意思,请想想Pornhub。 ;)
我看到了如何进行查询,但我担心性能问题。 我是一个关于性能和查询优化的真正的菜鸟,以及一个MongoDB初学者,所以我担心会在成千上万的文本中寻找,排序和排名的大查询的影响。 当然,我想到了缓存系统,但我不知道如何实现它,因为每个查询可能不同。我还想到了每天午夜(例如)有一份工作更新的临时馆藏,但同样有太多不同的组合。
那么我可以使用哪些技巧和“技巧”进行建模?你知道吗?是否有针对此设计的搜索框架? 或者我担心太多了,MongoDB可以很好地处理那种排序和排名?
我希望能够清楚。非常感谢你的帮助!
答案 0 :(得分:0)
一些注意事项:
{ "_id" : 123, "content" : "...", "tags" : [ "fun", "cool read" ] }
您索引“标记”字段,然后您可以搜索“tag:'fun'”,Mongo将非常快速地检索该文档。
你没有描述你是如何做出最高评价的,但你绝对可以将这些信息写入文本和查询。