Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server文本搜索_Sql_Sql Server_Sql Server 2008_Text Search - Fatal编程技术网

SQL Server文本搜索

SQL Server文本搜索,sql,sql-server,sql-server-2008,text-search,Sql,Sql Server,Sql Server 2008,Text Search,我有一个业务需求,我们需要对存储在数据库中的记录进行一些疯狂的名称匹配,我想知道是否有任何简单的方法可以使用SQL Server进行匹配 数据库中存储的名称:Austin K 要从UI匹配的名称:Austin Kierland 那只是一个样本。实际上,可能会有很多不同的排列和组合 如果是另一种情况,我可以使用野生字符,但在本例中,数据库中的名称小于搜索条件 有什么建议吗?现实地说,没有。数据库是用来比较绝对值的,而不是乱七八糟的比较。他们在内部存储数据的方式不适合真正混乱的匹配。事实上,即使是像

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

数据库中存储的名称:Austin K 要从UI匹配的名称:Austin Kierland

那只是一个样本。实际上,可能会有很多不同的排列和组合

如果是另一种情况,我可以使用野生字符,但在本例中,数据库中的名称小于搜索条件


有什么建议吗?

现实地说,没有。数据库是用来比较绝对值的,而不是乱七八糟的比较。他们在内部存储数据的方式不适合真正混乱的匹配。事实上,即使是像谷歌这样的超级强大的专用搜索引擎,有很多杂乱的匹配功能,在没有事先了解的情况下也无法完成您的示例


我不知道该要求的确切措辞,但我要么用“技术上不可能”来处理该功能请求,要么实现一个规则集,尝试进行混乱的匹配——例如,您可以轻松地“硬编码”,输入大写单词时执行多个搜索,将它们缩短为一个字母。但是,不知道这是否是问题的解决方案。

您可以使用LIKE运算符执行常规搜索,该运算符确定特定字符串是否与指定模式匹配。您将遇到的问题是返回多个记录或不正确人员的可能性。我对商业应用程序也有类似的要求,解决这个问题的最好办法是要求其他符合条件的值,而不仅仅是名称。如果您在没有其他合格数据的情况下进行部分名称搜索,您肯定会遇到假阳性匹配和/或多个记录。在我的例子中,我构建了一个web服务,它检查资格,允许文本搜索名字和姓氏,但还添加了出生日期、主要人物SSN和性别,从而确保匹配的人实际上就是要搜索的人。如果我的情况与您的情况类似,名称是唯一的搜索标准,那么我对业务部门的建议是,在将符合条件的数据输入数据库之前,我们无法执行搜索,否则无法准确查询他们正在查找的结果。

请注意。