实现MySQL /模糊搜索的Levenshtein距离?
我希望能够按照以下方式搜索一个表格,以获取它在1个方差内的所有信息。
数据:
O'Brien Smithe Dolan Smuth Wong Smoth Gunther Smiht
我已经研究过使用Levenshtein距离有没有人知道如何实现它呢?
为了有效地使用levenshtein距离进行搜索,您需要一个高效的专用索引,例如bk树。 不幸的是,我所知道的包括MySQL在内的数据库系统都没有实现bk-tree索引。 如果您正在寻找全文搜索,而不是每行只有一个词,这会变得更加复杂。 另一方面,我想不出有什么办法可以以允许基于levenshtein距离进行搜索的方式进行全文索引。
可以在这里找到damerau-levenshtein距离的实现:Damerau-Levenshtein算法:带换位的Levenshtein对纯Levenshtein距离的改进是考虑到字符交换。 我在schnaader的链接的评论中发现它,谢谢!
有一个Levenshtein距离函数的MySQL UDF实现
https://github.com/jmcejuela/Levenshtein-MySQL-UDF
它用C语言实现,性能比schnaader提到的“MySQL Levenshtein距离查询”更好
链接地址: http://www.djcxy.com/p/75299.html上一篇: Implementation of Levenshtein distance for mysql/fuzzy search?
下一篇: For mysql or mariaDB, Boolean search really does not return in relevance order?