我希望对某个表的特定列进行搜索,使得返回结果集应满足以下两个条件:
返回结果集应包含90%的字符与给定搜索文本匹配的记录。
返回结果集应包含70%的连续字符与给定搜索文本匹配的记录。
这意味着当搜索10个字符的单词Sukhminder时,则:
它应该返回像Sukhmindes,ukhminder,Sukhmindzr这样的记录,因为它符合上述两个条件。
但它不应该像Sukhmixder那样返回记录,因为它不符合第二个条件。同样,它不应该返回记录Sukhminzzz,因为它不符合第一个条件。
我正在尝试使用SQL Server的全文搜索功能。但是,还无法制定所需的查询。请尽快回复。
答案 0 :(得分:1)
您可以尝试将SOUNDEX命令和DIFFERENCE命令与全文搜索结合使用。
在线查看Google book在线讨论的内容
答案 1 :(得分:0)
你的意思是70%的原始单词吗?我认为你完全按照规定做到这一点的唯一方法是找出所有可能符合70%标准的字符串排列并带回与其中任何一个相匹配的记录
Col LIKE '%min%' AND (
Col LIKE '%Sukhmin%' OR Col LIKE '%ukhmind%'
OR Col LIKE '%khminde%' OR Col LIKE '%hminder%' )
然后进行进一步处理以查看是否符合90%标准。
修改:实际上,您可能会发现模糊搜索中的这个链接很有用http://anastasiosyal.com/archive/2009/01/11/18.aspx