【问题标题】:sql command or Dynamic programming?sql命令还是动态编程?
【发布时间】:2013-04-01 13:59:57
【问题描述】:

假设我的数据库中有 1 GB 的数据。我想做这样的事情:

如果用户搜索一个句子,说“Hello world,我在这里。”,程序应该能够返回找到这个确切字符串的数据(行)以及具有相似文本的行,例如,“Hello世界是一个著名的字符串,我敢肯定!'。

我的问题是:哪一个会更有效率——一个 sql 命令还是一个动态编程概念?

如果sql更高效,可以用什么命令来做同样的事情?

我正在使用 mysql 5.6

【问题讨论】:

  • 请通过添加适当的标签(Oracle、SQL Server、MySQL 等)指定您的目标关系数据库管理系统。可能有一些答案利用了不受普遍支持的语言或产品功能。此外,通过使用特定的 RDBMS 对其进行标记,您的问题可能会受到更适合回答的人的关注
  • @bluefeet +1 - 更好的问题得到更好的答案。
  • 您的挑战将是定义“相似性”以及您认为足够接近以匹配的确切内容...例如,是否匹配:“Hllo waRld,I'm Hear!”匹配吗?
  • @Randy:不!对于普通用户来说,这将是一个错误的结果。所谓相似性,我的意思不是确切的字符串(就这些单词的距离而言,而不是拼写!)“Hello world 是一个著名的字符串,我敢肯定!”比“你好,我听到了!”更好。 (至少对我来说)。
  • 好的(我并不反对)但是这些“规则”是需要以编程方式定义的

标签: mysql sql dynamic-programming


【解决方案1】:

您想使用 MySQL 的全文功能,记录在 here

基本上,您需要的数据结构是倒排索引。对于每个单词,这包含该单词在所有文档中的位置。有了这些信息,您就可以开始拼凑。

在大多数情况下,您最好使用已建立的软件来执行此操作,而不是编写自己的软件。我不想阻止你,如果你真的想的话,但问题可能比你想象的要难。

【讨论】:

  • 绝对是个难题。
  • 嘿,谢谢你的回答。使用动态编程我几乎完成了这部分。但我的导师问'为什么不能使用 mysql?这就是为什么我需要你的帮助
猜你喜欢
  • 1970-01-01
  • 2014-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多