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

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

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

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

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

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

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

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

【问题讨论】:

    标签: sql-server full-text-search


    【解决方案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

      【讨论】:

        猜你喜欢
        • 2014-12-03
        • 2015-06-15
        • 2010-09-06
        • 2011-03-30
        • 1970-01-01
        • 2011-06-10
        • 2011-10-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多