zoukankan      html  css  js  c++  java
  • 【转载】SQLServer全文搜索

    SQLServer全文搜索

    全文搜索的核心引擎建立在Microsoft Full-Text Engine for SQL Server (MSFTESQL) 服务提供支持

    使用全文搜索可以快速、灵活地为存储在 Microsoft SQL Server 数据库中的文本数据的基于关键字的查询创建索引。与仅适用于字符模式的 LIKE 谓词不同,全文查询将根据特定语言的规则对词和短语进行操作,从而针对此数据执行语言搜索

    Microsoft SQL Server 2005 中,全文搜索用于提供企业级搜索功能。由于在性能、可管理性和功能方面的显著增强,全文搜索可为任意大小的应用程序提供强大的搜索功能。

    对大量非结构化的文本数据进行查询时,使用全文搜索获得的性能优势会得到充分的表现。对数百万行文本数据执行的 LIKE 查询可能需要花费几分钟时间才能返回结果;但对同样的数据,全文查询只需要几秒或更少的时间,具体取决于返回的行数。

    可以对包含 charvarchar nvarchar 数据的列创建全文索引。也可以对包含格式化二进制数据(如存储在 varbinary(max) image 列中的 Microsoft Word 文档)的列创建全文索引。不能使用 LIKE 谓词来查询格式化的二进制数据

    最简步骤:(以AdventureWorks数据库中的databaselog表中的event字段为例)

    1、 启用全文索引:

    use AdventureWorks
    exec sp_fulltext_database 'enable'

    2、 全文索引是存储在指定的文件系统中的,而不是SQLServer中。

    exec sp_fulltext_catalog 'Cat_Desc', 'create', 'f:\ft'

    创建全文索引的目录

    3、 对表创建全文索引

    exec sp_fulltext_table 'databaselog', 'create', 'Cat_Desc',

    'PK_DatabaseLog_DatabaseLogID'

    在已有的表上根据已有的索引创建全文索引

     

    4、 对表中的列添加全文索引

    exec sp_fulltext_column 'databaselog', 'event', 'add'

     

    5、 表启动完全填充

    exec sp_fulltext_table 'databaselog', 'start_full'

     

    6、 执行全文检索

    select * from freetexttable(databaselog, event,'ALTER_TABLE');

     

     

     

     

    在SQLServer2005中使用全文搜索是一种占用空间的操作。它将维护一个文件保存关键字。具体使用方法如下:

    启用全文搜素(先选择哪个数据库)

    exec sp_fulltext_database 'enable'

     创建一个全文搜索,名为:FS_Name, 索引目录存储地址可以省略(省略则为默认)

    exec sp_fulltext_catalog 'FC_Name''create'

    为该全文搜索创建一个针对表T1的搜索(主键名:PK_Key)

    exec sp_fulltext_table 'T1''create''FC_Name',  'PK_Key'

     为针对t1表的全文搜索添加1列,列名:C1

    exec sp_fulltext_column 'T1''C1''add'

    另外,我们需要创建一项作业来向这个全文搜素中填充数据:(执行填充代码如下)

    exec sp_fulltext_table 'T1''start_full'

     T-SQL检索语句:

    select * from T1 where contains ([C1],'keyword')

     

  • 相关阅读:
    Aviator
    Docker是什么
    vulnhub--SickOs1.1
    vulnhub--HackInOS
    本地浏览器远程访问服务器tensorboard(MobaXterm)
    dogecoin
    python多进程
    gpu
    python调用父类(超类)
    linux更改终端显示颜色(用户名颜色等)
  • 原文地址:https://www.cnblogs.com/fx2008/p/2305727.html
Copyright © 2011-2022 走看看