您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

首先,您需要在生产服务器上启用“全文本搜索”索引,因此,如果这不在范围之内,那么您就不希望这样做。

但是,如果已经准备好了,则全文搜索相对简单。

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

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

祝你好运 :)

SQLServer 2022/1/1 18:31:10 有563人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶