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

Posted

技术标签:

【中文标题】SQL Server - 基于百分比的全文搜索【英文标题】:SQL Server - Percent based Full Text Search 【发布时间】:2010-05-12 07:36:50 【问题描述】:

我想以返回结果集应满足以下两个条件的方式对表的特定列进行搜索:

    返回的结果集应该有90%的字符与给定的搜索文本匹配的记录。

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

这意味着当搜索10个字符的单词Sukhminder时,那么:

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

但它不应该返回像 Sukhmixder 这样的记录,因为它不满足第二个条件。同样,它不应该返回记录 Sukhminzzz,因为它不满足第一个条件。

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

【问题讨论】:

【参考方案1】:

您可以尝试将SOUNDEX 命令和DIFFERENCE 命令与全文搜索结合使用。

看看这个Google book在线讨论它

【讨论】:

【参考方案2】:

你是指原词的 70% 吗?我认为您可以完全按照说明执行此操作的唯一方法是计算出所有可能符合 70% 标准的字符串排列,并带回与其中任何一个匹配的记录

Col LIKE '%min%' AND (
Col LIKE '%Sukhmin%' OR Col LIKE '%ukhmind%' 
OR Col LIKE '%khminde%'  OR Col LIKE '%hminder%' )

然后进行进一步处理以查看是否满足 90% 的条件。

编辑:实际上,您可能会在 Fuzzy Searching 上发现这个链接很有趣http://anastasiosyal.com/archive/2009/01/11/18.aspx

【讨论】:

以上是关于SQL Server - 基于百分比的全文搜索的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server中的全文搜索

SQL Server 全文搜索

Sql Server 数据库建全文搜索

SQL Server 全文索引介绍(转载)

SQL Server 全文搜索

为啥 SQL Server 全文搜索不匹配数字?