这是关于使用(关系数据库)设计全文搜索的系统架构问题。我使用的特定软件是Solr和PostgreSQL,仅供参考。搜索和数据库设计
假设我们正在建设有两个用户安迪和贝蒂的论坛 -
Post ID | User | Title | Content
--------|-------|-------------------|---------------------------
1 | Andy | Dark Knight rocks | Dark Knight rocks blah
2 | Betty | I love Twilight | Twilight blah blah
3 | Andy | Twilight sucks | Twilight sucks blah
4 | Betty | Andy sucks | Twilight rocks, Andy sucks
当职位表中的Solr进行索引,我们可以轻松地返回通过相关性排序,以”岗位Q =暮光之城“或”?q =黑暗+夜晚“。
现在我们想添加一个新功能来搜索用户而不是帖子。一个简单的实现只需索引用户名并将“Andy”返回为“?q = a”和“Betty”为“?q = b”,但如果我们想让我们的系统更智能以考虑用户因为贝蒂比安迪更多地提到暮光之城,所以将“贝蒂”之前“安迪”改回“?q =暮光之城”。
您将如何设计系统以高效处理数十万用户和数百万帖子的用户搜索功能?
感谢您的建议,但在面向用户时应该面向哪些字段? – Jerry
当然,在文档中您需要一个'user'字段来面向。它也应该是'string'类型。 – aitchnyu