高效 MySQL 搜索 100 万行

Efficient MySQL search for 1 Million Rows

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

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

这是目前的工作,它正在从数据库中选取正确的行。

但是现在,当出现像 Cidade de Deus 上帝之城 这样的术语时,我 运行 遇到了问题这是一个非常接近的变体,或者例如,City of Gold DVDDrip

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

我的想法:

我天真的想法是,是否有任何内置函数或算法匹配与数据库匹配的最大单词数并return结果。

我遇到过 Sphinx,但我不确定它是否解决了上述问题,还是对它来说也是一项艰巨的任务?

谢谢

有不同的算法可以匹配像 levenshtein 这样的模糊搜索。您可以从下面的 link 中获得算法的实现。它将 return 搜索短语与搜索项的距离,因此根据距离你可以 return 结果。

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