【问题标题】:Scalable 'google suggestions'-like system可扩展的“谷歌建议”系统
【发布时间】:2011-04-01 04:16:37
【问题描述】:

我有 100,000 个查询,我需要创建一个类似于 google 的“建议”系统。 很像这样

我需要它非常快,如果可能的话,允许一些更深入的选项(如排序等)。

谁能推荐一个我可以使用的数据库系统,它可以处理搜索超过 100k 的查询,同时仍然保持速度,或者您认为可以满足我需求的现有项目?

我一直在考虑使用 MongoDB,但我不确定这是否是最佳途径。

感谢任何帮助!

【问题讨论】:

  • 每秒、每分钟、每小时 100k+ 次查询?
  • 我假设他的意思是他有 100k 示例查询字符串或查询结果?在任何情况下,只要您设置正确的键,任何体面的数据库都会非常快速地搜索 100k 行表中的顶级匹配项。
  • @Jon 100k+ 存储在数据库中的查询总数。如果它可以在不到一秒的时间内返回 10 到 15 个顶级字符串匹配,那么它就会在球场上。
  • 好的,将其表示为 100K 行或值可能会更清楚:)

标签: mysql mongodb search full-text-search database


【解决方案1】:

有许多数据库解决方案可以轻松处理此要求,100K 行对于数据库来说并不是很多。根据您在问题中所说的话,实际上并没有“最佳”解决方案。

这仅取决于您可以访问的内容,以及您如何看待应用程序的增长。如果它会变得更复杂,那么最好使用完整的关系数据库解决方案,例如 MySQL 或 MSSQL,否则 MongoDB 就可以了。

【讨论】:

    【解决方案2】:

    如果它们真的只有 100K 字,我会很想将整个内容加载到内存中,作为 prefix trie。这将是惊人的快。

    当然,这会使更新变得更加困难......选项列表中添加了什么?您是否需要通过一台机器添加的选项立即可用,或者最终的一致性是否足够好?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-19
      • 1970-01-01
      • 2015-06-16
      • 2020-12-14
      • 2021-06-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多