mysql - 为 mysql/模糊搜索实现 Levenshtein 距离?

我希望能够按如下方式在表中搜索 smith,以获取它在 1 个方差范围内的所有内容。

数据:

O'Brien
Smithe
Dolan
Smuth
Wong
Smoth
Gunther
Smiht

我已经研究过使用 Levenshtein distance 有人知道如何用它来实现吗?

最佳答案

为了使用 levenshtein 距离进行高效搜索,您需要一个高效的专用索引,例如 bk-tree .不幸的是,我所知道的任何数据库系统,包括 MySQL,都没有实现 bk-tree 索引。如果您正在寻找全文搜索,而不是每行只有一个词,这会更加复杂。顺便说一句,我想不出任何方法可以以允许基于 levenshtein 距离进行搜索的方式进行全文索引。

https://stackoverflow.com/questions/634995/

相关文章:

mysql - 导入 CSV 以仅更新表中的一列

mysql - 如何在 CentOS7 上更改 MySQL root 帐户密码?

sql - SQL UPDATE中的str_replace?

mysql - Rails 控制台通过 id 数组查找用户

java - 无法让spring boot自动创建数据库模式

php - 获得上个月的第一天和最后一天的最佳方式?

MySQL 日期格式 - 插入日期的困难

mysql - CakePHP - 获取最后一个查询运行

mysql - 删除时间戳早于 x 天的所有行

c# - 在 Microsoft Visual Studio 2013 的 WinForms 中启用