当前位置:  开发笔记 > 编程语言 > 正文

将全文搜索与SQL Server结合有多难?

如何解决《将全文搜索与SQLServer结合有多难?》经验,为你挑选了1个好方法。

我正在构建一个带有SQL后端的C#/ ASP.NET应用程序.我正在截止日期并完成我的页面,在左侧字段中,我的一位设计师在我的一个页面上整合了全文搜索.直到此时我的"搜索"都是过滤器,能够通过某些因子和列值缩小结果集.

因为我正处于截止日期(你知道每晚睡3个小时,在我看起来像是吃了什么东西并且扔掉了),我期待这个页面与其他人非常相似,我正在尝试决定是否发臭.我以前从未在页面上进行过全文搜索....这是一座可以登山的山还是有一个简单的解决方案?

谢谢.



1> FlySwat..:

首先,您需要在生产服务器上启用全文搜索索引,因此如果这不在范围内,您不会想要使用它.

但是,如果已经准备就绪,全文搜索相对简单.

T-SQL有4个谓词用于全文搜索:

FREETEXT

FREETEXTTABLE

CONTAINS

CONTAINSTABLE

FREETEXT是最简单的,可以这样做:

SELECT UserName
FROM Tbl_Users
WHERE FREETEXT (UserName, 'bob' )

Results:

JimBob
Little Bobby Tables

FREETEXTTABLE与FreeTEXT的工作方式相同,只不过它将结果作为表返回.

T-SQL全文搜索的真正力量来自CONTAINS(和CONTAINSTABLE)谓词......这个很大,所以我只是将它的用法粘贴在:

CONTAINS
    ( { column | * } , '< contains_search_condition >' 
    ) 

< contains_search_condition > ::= 
        { < simple_term > 
        | < prefix_term > 
        | < generation_term > 
        | < proximity_term > 
        | < weighted_term > 
        } 
        | { ( < contains_search_condition > ) 
        { AND | AND NOT | OR } < contains_search_condition > [ ...n ] 
        } 

< simple_term > ::= 
    word | " phrase "

< prefix term > ::= 
    { "word * " | "phrase * " }

< generation_term > ::= 
    FORMSOF ( INFLECTIONAL , < simple_term > [ ,...n ] ) 

< proximity_term > ::= 
    { < simple_term > | < prefix_term > } 
    { { NEAR | ~ } { < simple_term > | < prefix_term > } } [ ...n ] 

< weighted_term > ::= 
    ISABOUT 
        ( { { 
                < simple_term > 
                | < prefix_term > 
                | < generation_term > 
                | < proximity_term > 
                } 
            [ WEIGHT ( weight_value ) ] 
            } [ ,...n ] 
        ) 

这意味着您可以编写如下查询:

SELECT UserName
FROM Tbl_Users
WHERE CONTAINS(UserName, '"little*" NEAR tables')

Results:

Little Bobby Tables

祝好运 :)


我已经对此进行了投票并将其作为答案除外,因为它是一个非常详细的响应,但也适用于xkcd参考.赢得.
推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有