开发搜索和标记重型网站

时间:2015-06-07 00:58:53

标签: sql database web-applications solr nosql

我正处于开发一个标记很重的网站的规划阶段。一切都将基本上与标签相关联,整个网站将基于搜索这些标签。

现在,我一直在考虑在这里使用nosql路由,因为根据我的阅读和理解,它最适合这样的事情。

最好是使用这个数据库系统吗?使用关系数据库系统是否有意义?我是否应该考虑使用像SOLR这样的东西?

理想的设置是什么?

更新

理想情况下,它们将由用户生成,但我们都知道如何为用户提供更多功能。所以,让我们改变要求并说用户没有能力创建标签。

根据文本匹配搜索标签可能是有用和需要的。如果标签是“车库销售”,搜索“销售”也应该选择较低的相关性。

我无法想象缩放是一个问题。

由于

2 个答案:

答案 0 :(得分:0)

有关SQL解决方案,请参阅this answer。我无法想到使用大多数NoSQL数据库(即键值,列或文档)的任何优势,因为SQL解决方案将更紧凑,应该提供良好的性能;如果您在标签上进行了大量的导航类型查询,那么图形数据库可能是合适的,但它听起来并非如此。

使用Solr(或ElasticSearch或其他)与您的主数据库正交;如果用户正在为搜索键入不精确的标签,则可能适合使用搜索工具,但我建议在转向使用完整的搜索工具之前,在这些行中集成stemming库。

答案 1 :(得分:0)

我会花一点时间考虑这些标签。例如,这些标签是用户生成的还是您提供一些标签,让用户选择他们想要的标签?

您是否需要根据文字匹配搜索标签?例如,如果标签是“车库销售”,你想搜索“销售”也可以选择这个吗?也许相关性较低?

另外,你在看什么样的用法? Solr的一个好处是它可以非常容易地扩展和同步数据,很容易部署多个节点,分片集合并将数据复制到其他节点,这是传统数据库所挣扎的。

要记住的另一件事是,大多数情况下,Solr不是官方的“记录存储库”,大多数时候数据从某个地方的DB提供给它,但所有的阅读活动都是从Solr完成的。