没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Sql2005 全文索引详解
1.前言..........................................................................................................................................2
14.1 全文索引的介绍................................................................................................................2
14.2 全文索引中常用的术语....................................................................................................3
14.3 全文索引的体系结构........................................................................................................4
14.4 全文目录管理....................................................................................................................5
14.4.1 创建全文目录.........................................................................................................6
14.4.2 查看与修改全文目录.............................................................................................7
14.4.3 删除全文目录.........................................................................................................8
14.5 全文索引管理....................................................................................................................8
14.5.1 创建全文索引的注意事项.....................................................................................8
14.5.2 创建全文索引.........................................................................................................9
14.5.3 查看与修改全文索引...........................................................................................14
14.5.4 启用和禁用全文索引...........................................................................................15
14.5.5 删除全文索引.......................................................................................................16
14.6 填充全文索引..........................................................................................................16
14.6.1 填充全文索引的方式...........................................................................................16
14.6.2 填充全文索引.......................................................................................................16
14.6.3 定时填充全文索引...............................................................................................18
14.7 使用全文搜索查询..........................................................................................................21
14.7.1 使用 CONTAINS 搜索.........................................................................................21
14.7.2 使用 FREETEXT 搜索.........................................................................................27
14.7.3 使用 CONTAINSTABLE 搜索............................................................................28
14.7.4 使用 FREETEXTTABLE 搜索............................................................................31
14.7.5 搜索 image 字段...................................................................................................32
14.8 2005 新增:与全文索引相关的 T-SQL 语句................................................................33
14.8.1 创建全文目录.......................................................................................................33
14.8.2 更改全文目录属性...............................................................................................34
14.8.3 创建全文索引.......................................................................................................34
14.8.4 更改全文索引属性...............................................................................................35
14.8.5 删除全文索引.......................................................................................................37
14.8.6 删除全文目录.......................................................................................................37
14.9 小结..................................................................................................................................38
1.前言
本章包括:
全文索引的介绍
全文索引中的术语
全文索引的体系结构
全文目录的管理
全文索引的管理
填充全文索引
使用全文搜索查询数据
在数据库中快速搜索数据,使用索引可以提高搜索速度,然而索引一般是建立在数字
型或长度比较短的文本型字段上的,比如说编号、姓名等字段,如果建立在长度比较长的
文本型字段上,更新索引将会花销很多的时间。如在文章内容字段里用 like 语句搜索一个
关键字,当数据表里的内容很多时,这个时间可能会让人难以忍受。
在 SQL Server 中提供了一种名为全文索引的技术,可以大大提高从长字符串里搜索
数据的速度,在本章里,将会对全文索引进行详细的介绍。
14.1 全文索引的介绍
全文索引与普通的索引不同,普通的索引是以 B-tree 结构来维护的,而全文索引是一
种特殊类型的基于标记的功能性索引,是由 Microsoft SQL Server 全文引擎服务创建和
维护的。
使用全文索引可以快速、灵活地为存储在 SQL Server 数据库中的文本数据创建基于
关键字查询的索引,与 like 语句不同,like 语句的搜索是适用于字符模式的查询,而全文
索引是根据特定语言的规则对词和短语的搜索,是针对语言的搜索。
在对大量的文本数据进行查询时,全文索引可以大大地提高查询的性能,如对于几百
万条记录的文本数据进行 like 查询可能要花几分钟才能返回结果,而使用全文索引则只要
几秒钟甚至更少的时间就可以返回结果了。
14.2 全文索引中常用的术语
由于全文索引中使用了较多的新的术语,在此先介绍这些术语:
l 全文索引:一种特殊的索引,能在给定的列中存储有关重要的词及位置的信息,
使用这些信息可以快速进行全文查询,搜索包括特定词或词组的行。
l 全文目录:全文目录是存储全文索引的地方,全文目录必须驻留在与 SQL
Server 实例相关联的本地硬盘上,每个全文目录可用于满足数据库内的一个或多
个表的索引需求。
l 断字符与词干分析器:断字符与词干分析器都是用于对全文索引的数据进行语
言分析的。语言分析通常都会涉及到查找词的边界和组合动词两个方面,其中要
查找词的边界,也就是确定哪几个字符是“词”,称之为“断字”。组合动词也就是词
干分析,用于分析词。根据语言的不同,语言分析规则也不尽相同,由此可以为
每个全文索引列指定不同的语言。每种语言的断字符能够使得访问语言生成的词
更为准确。
l 标记:由断字符标识的词或字符串。
l 筛选器:用于从存储在 varbinary(max)或 image 列中的文件内提取指定的文
本类型的文本。当 varbinary(max)或 image 列中包含带有特定文件扩展名的文
档时,全文搜索会使用筛选器来解释二进制数据,筛选器会从文档中提取文本化
信息并用于建立索引。
l 填充(爬网):创建维护全文索引的过程叫填充,也叫爬网。
l 干扰词:经常出现,但又不是要搜索的词。为了精简全文索引,这些词通常会
被忽略。
14.3 全文索引的体系结构
SQL Server 的全文索引是由 SQL Server FullText Search 服务来维护的,该服务
可以在 Windows 操作系统的【管理工具】à【服务】里找到,如图 14.1 所示,在此可以
启动、停止、暂停、恢复和重新启动该服务。只有 SQL Server FullText Search 服务在
启动状态时,才能使用全文索引。
图 14.1 SQL Server FullText Search 服务
SQL Server FullText Search 服务由两个部分组件支持:一个是 Microsoft Full-
Text Engine for SQL Server(MSFTESQL),也就是 SQL Server 全文搜索引擎;另
一个是 Microsoft Full-Text Engine Filter Deamon(MSFTEFD),也就是全文搜索引
擎过滤器。
Microsoft Full-Text Engine for SQL Server 的作用是填充全文索引、管理全文索
引和全文目录、帮助对 SQL Server 数据库中的数据表进行全文搜索。Microsoft Full-
Text Engine Filter Deamon 包含筛选器、协议处理程序和断字符三个组件,其作用是
负责从数据表中访问和筛选数据以及进行断字和词干分析。其中,筛选器的作用是从文档
中提取文本信息,并将非文本信息和格式化信息(如换行符、字体大小等信息)删除,然
后生成文本字符串和属性的对应,并将它们传递给索引引擎;协议处理程序用于从指定数
据库中的表内访问数据;断字符用于在查询或抓取的文档中确定字符边界位置。
全文索引组件负责对全文索引的初始填充以及当全文索引表中的数据被修改时的更新。
当全文填充(爬网)开始后,数据库引擎会将大量的数据存储到内存里,并通知
Microsoft Full-Text Engine for SQL Server(MSFTESQL)开始进行索引。当
MSFTESQL 服务接到进行索引的通知后,使用协议处理程序组件从内存中取得数据进行处
理后生成全文索引。MSFTESQL 服务会将数据表中的某一列或几列中的字符和二进制数据
编制成索引。在对 varbinary(max)或 image 列中的数据编制索引时,筛选器会将基于为
该数据指定的文件格式来提取文本。在处理索引的过程中 MSFTESQL 服务通过断字符来
将收集到的文本数据分隔成各个单独的标记或关键字。这个过程就是全文索引的过程。
由于全文索引与普通的索引不同,全文索引并不是存储在数据表中,而是存储在全文
目录中,所以在使用全文索引来搜索数据时,其运行的流程和普通索引也不一样。
如图 14.2 所示,当 SQL Server 发出全文搜索的请求后,会将搜索的条件传递给全
文搜索引擎过滤器,经过 MSFTEFD 处理后,将数据提供给 MSFTESQL,再由
MSFTESQL 从全文目录中找到符合要求的数据,再返回给 SQL Server 进行后续操作。这
就是进行全文搜索的过程。
图 14.2 全文搜索流程
14.4 全文目录管理
在前面章节里提到,全文目录的作用是存储全文索引,所以要创建全文索引必须先创
建全文目录。
剩余37页未读,继续阅读
资源评论
- 鬼头猫2013-01-31看了之后才知道SQL Server 2005 有全文检索的功能,算是长了知识,很好
- downmoon2014-01-20感觉非常有用,学习了
akunshenjk
- 粉丝: 84
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功