SQL Server - 基于百分比的全文搜索

时间:2010-05-12 07:36:51

标签: sql-server full-text-search

我希望对某个表的特定列进行搜索,使得返回结果集应满足以下两个条件:

  1. 返回结果集应包含90%的字符与给定搜索文本匹配的记录。

  2. 返回结果集应包含70%的连续字符与给定搜索文本匹配的记录。

  3. 这意味着当搜索10个字符的单词Sukhminder时,则:

    它应该返回像Sukhmindes,ukhminder,Sukhmindzr这样的记录,因为它符合上述两个条件。

    但它不应该像Sukhmixder那样返回记录,因为它不符合第二个条件。同样,它不应该返回记录Sukhminzzz,因为它不符合第一个条件。

    我正在尝试使用SQL Server的全文搜索功能。但是,还无法制定所需的查询。请尽快回复。

2 个答案:

答案 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