The quick brown fox jumps over the lazy dog
大致匹配:
Quick brown fox jumps over the lazy dog
如果该记录已存在于表中。我已经看到(并用于其他情况)在T-SQL中实现的Levenshtein Distance算法,但我不确定这是否可以应用于我的情况,因为执行算法需要一对输入字符串。社区成员如何处理这类事情?感谢。
答案 0 :(得分:4)
如果您只需(批量)加载表格,或定期删除重复项,您也可以在SSIS中使用模糊分组转换 - 这是您的示例的结果。
结果按_key_out
分组,“原始”行由_key_in = _key_out
标识。如果_key_out <> _key_in
该行与前一行类似,则可以设置最小相似度,分隔符,区分大小写等。
答案 1 :(得分:1)
Full-Text Search是你最好的选择。由于需要计算的咕噜声,在任何非平凡大小的文本语料库中使用Levenshtein很快就会成为问题。使用LD / SOUNDEX等更常见的是基于字符的差异而不是基于单词的差异。假设单词至少正确拼写,FTS将更适合。我还可以想象一种使用FTS识别可能匹配候选者的双层方法,在过滤集上执行更细粒度的匹配。如果你真的想去城里,那么搜索文本的性能最好的结构之一是Trie,但这在表中实现很棘手,并且作为内存数据结构更好。基于单词的n-gram解决方案也可能值得研究。
答案 2 :(得分:0)
您可能想要调查两个T-SQL函数SoundEx()和Difference()。这些可能对你有用。