【问题标题】:SQL Search Statement like Google?像 Google 一样的 SQL 搜索语句?
【发布时间】:2010-10-11 19:11:59
【问题描述】:

是否有某种 SQL 语句可用于对表中的 1 列进行搜索,这与我正在寻找的内容相似。

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

或者

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

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

【问题讨论】:

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


    【解决方案1】:

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

    看看这里:

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

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

    【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        另一种帮助您的用户找到他们正在寻找的内容的方法是在搜索字段中实现预先输入。如果用户输入:“我的”,他会得到“我的公司”作为建议,并且很可能会接受。

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

        【讨论】:

          【解决方案5】:

          没有。全文索引可能会让您更接近,具体取决于您的要求(您正在寻找什么确切的功能?)一种选择是滚动您拥有所需功能的 .NET 程序集,将其添加(CREATE ASSEMBLY)到 sql server 并使用它来搜索。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-09-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多