我正在努力实现类似于 SO 的“相关问题”功能的功能。我想为 C、C++ 等少数标签建议最匹配的问题。如果我想要良好的性能,或者我应该坚持使用像 MySQL 这样的传统关系数据库,那么在这种项目中使用像 MongoDB 这样的 NoSQL DB 更可取吗?
我已经看到了一些类似的问题,但不完全是我正在寻找的问题 - 用于搜索类似于 Stackoverflow 上的“相关问题”的 SQL 是什么
我正在努力实现类似于 SO 的“相关问题”功能的功能。我想为 C、C++ 等少数标签建议最匹配的问题。如果我想要良好的性能,或者我应该坚持使用像 MySQL 这样的传统关系数据库,那么在这种项目中使用像 MongoDB 这样的 NoSQL DB 更可取吗?
我已经看到了一些类似的问题,但不完全是我正在寻找的问题 - 用于搜索类似于 Stackoverflow 上的“相关问题”的 SQL 是什么
一点点更多的信息将有助于为您提供指导。您期望的数据量是多少?有多少并发用户会查询数据库?您打算将所有问题存储在数据库中还是仅通过 ID:s 与它们相关联?
另外,对环境有什么要求吗?Java、.NET 还是其他?
如果您的目标是标签和问题/主题之间的关系实现,我会选择一个具有一些易于使用的查询语言的面向对象的数据库。喜欢:
public class Question
{
String QuestionsText;
}
public class Tag
{
String Tag;
}
public class TagPerQuestion
{
Tag ConnectedTag;
Question ConnectedQuestion;
}
然后,您可以使用 TagPerQuestion 轻松查询具有相似标签的所有问题。这将是干净和容易的。此实现可以在 Starcounter (.NET)、VoltDB (Linux) 中轻松完成。
如果您的项目数量不是极端的并且同时用户数量很少,您也可以使用 MySQL 等传统数据库并将类替换为表。