像Google这样的SQL搜索语句?

时间:2010-10-11 19:12:00

标签: asp.net sql sql-server sql-like

我是否可以使用某种SQL语句在我的表中的1列上进行搜索,这与我正在寻找的类似。

如果我正在寻找与“汽车”有关的东西,但我拼写为“Kar”,它必须返回“汽车”的项目。

如果我正在寻找“我的公司”并将其拼写为“我的公司”,它仍然必须重新调整“我的公司”。

Select * from TableName where Column Like '%company%'将返回“我的公司”,但我需要更多,因为用户不会总是知道如何拼写。所以我需要更先进的东西,比如一些小型Google App或其他东西......

5 个答案:

答案 0 :(得分:2)

该功能在文本服务中,因此如果您构建全文搜索索引,您应该能够使用该功能。

看看这里:

http://msdn.microsoft.com/en-us/library/ms187384.aspx

http://msdn.microsoft.com/en-us/library/ms142571.aspx

答案 1 :(得分:2)

这是一个非常复杂的问题。快速回答是使用SQL Server soundex算法,但它很无望。试试this SO answer上的建议。 (更新)

答案 2 :(得分:1)

阅读此博文:http://googlesystem.blogspot.com/2007/04/simplified-version-of-googles-spell.html

这是您可以使用SQL实现的,但它不是内置功能。

答案 3 :(得分:0)

帮助用户找到所需内容的另一种方法是在搜索字段上实现预先输入。如果用户输入:“我的”,他将获得“我的公司”作为建议,并可能与此相符。

您可以使用jquery或其他javascript库轻松实现类型提前。这是jQuery的类型提前插件列表:http://plugins.jquery.com/plugin-tags/typeahead

答案 4 :(得分:0)

没有。一个全文索引可能会让你更接近,这取决于你的要求(你正在寻找什么确切的功能?)一个选项是滚动自己的.NET程序集与所需的功能添加它(CREATE ASSEMBLY)到SQL服务器并使用它来搜索。