我正在设计一个系统,它将存储世界上所有可用的餐馆,然后用户应该能够对这些具有非常低的能力的大型数据集执行通用搜索。正常的RDBMS是否足以满足这一要求,或者我应该选择像cassandra这样的大数据框架。我应该使用什么来有效地进行通用搜索。为每家餐厅存储评论的最佳方式是什么。
答案 0 :(得分:0)
您可以使用任何RDBMS来存储您的数据。但是对于快速搜索,使用像lucene这样的搜索引擎,它提供各种快速搜索和聚合。
直接使用lucene可能需要付出更多努力,因此您可以使用围绕lucene构建的已有工具,如solr和elasticsearch。
答案 1 :(得分:0)
所以第一个问题是:您认为会有多少数据? 大数据方法更适合数十亿条记录,但当然如果你没有适当的硬件和数据库设计,例如,几百万条记录可能会导致MySQL服务器的性能非常差。
NoSQL更适合非相关的相关数据,我认为在您的情况下,表之间会有很多关系(例如,您可以将餐馆表与具有直接关系(例如,使用外键)与{{1} } table。
在这种情况下,使用MySQL(innoDB引擎)将非常有用,例如当您删除餐馆时 - 可以用它删除所有注释,并节省光盘空间和时间。
如果您打算拥有不超过1亿至2亿家拥有适当硬件的餐馆(专用MySQL服务器或带有负载均衡器的多台服务器),您可以设计数据库(表格,关系,数据类型和索引)好的方式,那么你将有出色的表现。
如果您计划拥有更多数据并且许多用户经常查询这些数据,那么您应该考虑使用Apache Hadoop(使用HBase或Cassandra)。