从数据库中快速获得模糊字符串匹配

我有一个~150’000个单词和一个模式(任何一个单词)的数据库,我想从数据库中得到所有单词,它与Damerau-Levenshtein之间的距离小于给定数字的模式.我需要非常快速地完成它.你能建议什么算法?如果Damerau-Levenshtein距离没有好的算法,那么Levenshtin距离也会受到欢迎.

谢谢您的帮助.

附:我不打算用SOUNDEX.

最佳答案 我将从一个SQL函数开始计算Levenshtein距离(在T-SQl或.Net中)(是的,我是一个MS人……),其最大距离参数会导致提前退出.

然后可以使用此函数将输入与每个字符串进行比较以检查distanve,如果它突破阈值则继续前进到下一个.

我还想你可以,例如,将最大距离设置为2,然后过滤掉长度大于1的所有单词,而第一个字母不同.使用索引可能会稍快一些.

您还可以快捷方式将所有完全匹配的字符串(索引将加快此速度)恢复,因为这些实际上需要更长的时间来计算Levenshtein距离0.

只是一些想法….

点赞