【问题标题】:Efficient MySQL search for 1 Million Rows高效的 MySQL 搜索 100 万行
【发布时间】:2015-07-20 22:54:21
【问题描述】:

目前我在我的 MySQL 数据库上使用 FULLTEXT 索引并使用简单查询

MATCH (movie) AGAINST("City of Gold")

目前正在完成这项工作,它正在从数据库中获取正确的行。

但是现在,当有一个类似 Cidade de Deus City Of God 的术语时,我遇到了问题,这是一个非常接近的变体,或者例如,黄金之城 DVDDrip

我的问题是,匹配正确行的最佳搜索算法是什么,基于数据库中的最大最接近匹配。

我的想法:

我的幼稚想法是,是否有任何内置函数或算法可以匹配与数据库匹配并返回结果的最大单词数。

我遇到过 Sphinx,但我不确定它是否能解决上述问题,或者它是否也是一项艰巨的任务?

谢谢

【问题讨论】:

  • 可能没有什么“现成的”可以满足您的需求。
  • 这很奇怪..

标签: php mysql search indexing


【解决方案1】:

有不同的算法可以匹配 levenshtein 等模糊搜索。您可以从下面的链接获得算法的实现。它将返回搜索短语与搜索项的距离,因此您可以根据距离返回结果。

https://falseisnotnull.wordpress.com/2013/05/18/levenshtein-and-levenshtein_ratio-functions-for-mysql/

【讨论】:

  • 我去看看。有趣的是,现在还没有这种东西。
  • 这是一个相当不错的功能。我有一个小问题。选择行时 MATCH 或 levenstein 函数更有效吗?
  • 我不确定你的意思,但它有几个循环来计算每行的距离,它可能效率不高。对于这种场景弹性搜索很好,你可以有更详细的全文搜索。
猜你喜欢
  • 2019-12-28
  • 2011-04-22
  • 2015-08-14
  • 1970-01-01
  • 2018-11-06
  • 1970-01-01
  • 1970-01-01
  • 2013-10-31
  • 1970-01-01
相关资源
最近更新 更多