SQL Server 2008 - 搜索查询

3

我不是SQL专家。我正在试图优雅地解决一个查询问题,其他人也一定遇到过。令人惊讶的是,谷歌没有提供任何有用的结果。基本上,我的应用程序有一个“搜索”框。这个搜索字段将允许用户在系统中搜索客户。我在我的SQL Server 2008数据库中有一个名为“Customer”的表。这个表的定义如下:

Customer

  • UserName (nvarchar)

  • FirstName (nvarchar)

  • LastName (nvarchar)

正如你所想象的那样,我的用户会输入各种大小写的查询,可能经常拼错客户的名字。我该如何查询我的客户表并返回最接近他们查询的25个结果呢?我不知道如何进行排名,并考虑了表中列出的三个字段。

谢谢!

3个回答

4

我建议使用全文搜索。全文搜索可以提供许多处理不同名称变体的选项,并可以使用CONTAINSTABLE对结果的“接近程度”进行排名。如果您发现全文搜索不够满足需求,可以考虑使用像Lucene这样的第三方索引工具。


2
你可能想尝试使用SOUNDEX或DIFFERENCE作为全文搜索的替代方案。请参考以下链接进行了解:SOUNDEXDIFFERENCE
SELECT TOP 25 UserName, FirstName, LastName
FROM Customer
WHERE DIFFERENCE( UserName, @SearchValue ) > 2
ORDER BY DIFFERENCE( UserName, @SearchValue ), UserName

0

你可以通过将表格排序规则设置为不区分大小写来轻松解决大小写问题。

拼写错误不确定如何处理,但可以查看SQL Server的全文搜索功能


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接