SQL Server文本搜索

时间:2013-04-25 17:00:57

标签: sql sql-server sql-server-2008 text-search

我有业务需求,我们需要对存储在数据库中的记录进行疯狂的名称匹配,我想知道是否有任何简单的方法可以使用SQL Server。

存储在DB中的名称:Austin K. 从UI匹配的名称:Austin Kierland

这只是一个样本。实际上,可能存在许多不同的排列和组合。

如果它是相反的,我可以使用野性字符,但在这种情况下,数据库中的名称小于搜索条件。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

现实 - 没有。数据库用于比较绝对值,而不是用于混乱的比较。他们内部存储数据的方式不适合真正混乱的匹配。实际上,即使是像谷歌这样拥有 LOT 混乱匹配功能的超级强大的专用搜索引擎,也无法在没有事先知识的情况下完成你的实例。

我不知道这个要求是如何措辞的,但是我要么在“技术上不可能”的情况下拍摄功能请求,要么实施一个规则集,对于这个规则集,我们可以轻松地尝试混乱的匹配硬编码'当输入大写单词时执行多次搜索,将它们缩短为一个字母。不知道这是否是你问题的解决方案。

答案 1 :(得分:0)

您可以使用LIKE运算符执行常规搜索,该运算符确定特定字符串是否与指定模式匹配。您将遇到的问题是多个记录或不正确的人返回的可能性。我对业务应用程序有类似的要求,问题的最佳解决方案是要求其他符合条件的值,而不仅仅是名称。如果您在没有其他合格数据的情况下进行部分名称搜索,您肯定会遇到误报和/或多条记录。在我的情况下,我建立了一个网络服务,检查资格,允许文本搜索第一个&姓氏,但也增加了出生日期,主要人士SSN和性别,以确保匹配的人是想要搜索的人的契约。如果我的情况与您的情况一样,我的建议是唯一的搜索标准,那么我们无法执行搜索,直到将符合条件的数据输入数据库,否则没有准确的方法来查询他们正在寻找的结果。 / p>