(转)sql2005全文索引
SQL Server 2005_索引

数据库
数据文件 .mdf或.ndf 事务日志文件 .ldf
表
区:64 KB 数据 页:8 KB
数据的查找
数据如何查找
表扫描
使用索引
数据页
Page 4
Con Funk White ... ... ... ... ... ... ...
Page 5
Rudd White Barr
... ... ... ... ... ... ...
Page 6
Akhtar Funk Smith Martin ...
... ... ... ... ...
Page 7
Smith Ota Jones
... ... ... ... ... ... ...
Page 8
Martin Phua Jones Smith ...
... ... ... ... ...
非聚集索引的结构示意图
object_id
根节点 上一页 下一页 索引行 非 索引页 聚 集 叶节点
键值+行定位符
index_id > 1
root_page
索 上一页 下一页 索引行 上一页 下一页 索引行 上一页 下一页 索引行 引
索引页
堆 数据页 或 上一页 下一页 上一页 下一页 聚
……
数据行
INSERT member (last name) VALUES lastname = ‘Jackson' Index Pages
Akhtar … Martin Akhtar Ganio Jackson … Lang Smith …
Non-Leaf Level
Leaf Level Leaf Level
全文检索(SQL2005)

全文检索(SQL2005)在项目中使用like语句搜索一个关键字,当数据表里的内容很多时,这个时间可能会比较长,而Sql Server里提供的全文索引技术则能大大提高检索速度,同时还能检索存入Image字段的文件(html、word、execl、pdf等),下面就说一下如何使用全文检索:一、步骤1、开启SQL Server FullText Search服务可在Windows操作系统的【管理工具】-【服务】里找到(也可在“运行”里输入services.msc来打开服务),如要使用全文索引,则必须开启服务。
如下图:2、创建全文目录(以sports_new数据库为例)1)启动【SQL Server Management Studio】,选择本地数据库实例--【数据库】--【sports_new】--【存储】--【全文目录】。
2)右击【全文目录】,在弹出的快捷菜单里选择【新建全文目录】选项(这一步也可在向导过程中完成),如下图3)弹出如下对话框:输入相关信息后点击“确定”。
3、创建全文索引1)选择【表core_attachment】,右击【core_attachment】数据表,在弹出的快捷菜单里选择【全文索引】--【定义全文索引】,如下图2)弹出如下对话框:点击“下一步”选择要检索的列,如要检索的列类型为Nvarchar或Text(如上图的DisplayName字段和CreatorName字段),选择后直接点击“下一步”即可,如要对image类型的字段里的文件进行全文搜索,必须还要有一个字符串类型的字段用于指明存储在image字段中的文件的扩展名(如Word文件,字符串类型的字段则存.doc或.docx),如上图。
点击“下一步”选择“自动”(默认即为自动),点击“下一步”可以选择全文目录,也可以在此页面创建新的全文目录,点击“下一步”在此页面可新建表计划和目录计划(可不填),点击“下一步”点击“完成”,即完成全文索引的创建。
基于SQL 2005的全文索引技术

基于SQL 2005的全文索引技术
李岩
【期刊名称】《知识经济》
【年(卷),期】2010(000)015
【摘要】本文分析了现今全文索引技术的现状.重点介绍了SQL server2005 数据库系统下实现全文索引的过程,并以实例分析了SQL server2005实现全文索引技术的简易过程,介绍了实现该技术的部分代码.
【总页数】1页(P118)
【作者】李岩
【作者单位】天津城市建设学院图书馆,300384
【正文语种】中文
【相关文献】
1.SQL Server的全文索引及优化 [J], 何宗要;田慧
2.基于SQL 2005 SSIS技术的分布式海量数据ETL系统 [J], 张永涛
3.基于SQL Server 2005的数据挖掘技术在高校教学评价中的应用研究 [J], 王可安;贾存良;李质勇
4.主题企划SQL Server 2005走下楼梯——集成的价值:SQL Server 2005和Visual Studio 2005——Paul Flessner和S.Somasegar访谈录 [J], Karen; Forster; 徐瑾(翻译)
5.PostgreSQL中文全文索引技术研究与实现 [J], 战疆;冯月利;王珊
因版权原因,仅展示原文概要,查看原文内容请购买。
sql2005索引使用相关动态视图

2008年8月18日比较SQL Server存储过程与用户自定义函数SQL Server用户自定义函数和存储过程有类似的功能,都可以创建捆绑SQL语句,存储在server中供以后使用。
这样能够极大地提高工作效率,通过以下的各种做法可以减少编程所需的时间:∙重复使用编程代码,减少编程开发时间。
∙隐藏SQL细节,把SQL繁琐的工作留给数据库开发人员,而程序开发员则集中处理高级编程语言。
∙维修集中化,可以在一个地方做业务上的逻辑修改,然后让这些修改自动应用到所有相关程序中。
乍看之下,用户自定义函数和存储过程的功能似乎一摸一样。
但是,其实这两者之间还有一些虽然细微但是很重要的差异:∙存储过程是使用EXEC命令独立调用的,而用户自定义函数是在另一个SQL语句中调用的。
∙l存储程序是允许用户和程序去使用存储过程,而不是允许其存取表格,这样能够增强程序安全性。
与标准的SQL Server 相比,存储程序限制用户行动权限方面更为细化。
例如,如果你有一个货存表格,每次卖出一个货物收银员都要对表格进行更新一次(从货存中把该货品减去一件)。
你可以给收银员设置权限,允许其使用decrement_item存储过程,而不是允许他们有任意修改或村表格的权限。
函数必须始终返回一个值(一个标量值或一个表格)。
而存储过程可以返回一个标量值、一个表值或无需返回值。
总而言之,存储程序对SQL Server开发员来说是最有价值的宝物之一,用于数据库中,能够大大的提高工作效率,增强安全性,绝对超值。
posted @ 2008-08-18 16:57 云水禅心阅读(67) | 评论(0)| 编辑2008年8月4日卸载Sqlserver2000完美卸载SQLServer2000的方案大家无论在重装SQLServer2000,还是在最初安装SQLserver20 00的时候,都可能会出现”以前的某个程序安装已在安装计算机上创建挂起的文件操作。
运行安装程序之前必须重新启动计算机”错误这个问题么?重装N遍系统是很麻烦的而且也不一定能够解决掉出现这种问题的情况有以下几种:1 可能安装过3721软件,对注册表中的文件已经写死,因此会出现这个问题。
基于SQL2005的全文索引技术

和搜 索 引 擎 。 MS T S L基 于 M i ootSac ( Ser ) 术 , F EQ c sf erh M Sac 技 r h 它 与 M ioot Q evr 05D tbs ni 进 行 了集 成 。 e sf S L Sre 20 aaaeE g e r n S L20 Q 05中全 文 索 引 的 简要 代 码 分 为 几 步 完 成 ( t ce 表 以 e hr a 为 例 , 括 nme , e ) 包 a 列 a 列 : g () 查 数 据 库 是 否 支 持 全 文 索 引 , 用 s f tx d tba e 1检 使 p uU e t a a s
—
打开 该 功 能
t tbs ’ na e e e u e s f le t daa a ee bl' x c t p ul x
— —
( ) 立 全 文 目录 2建
t a ao FT s h l, ra e c oo’' e t’ c e e u e s f le t c t l g ' x c t p ul x
— — —
二 、 文 索 引 技 术 全
全 文 索 引 是指 以全 文 信 息 作 为 检 索 对 象 , 立 全 文 数 据 库 , 建 提 供 根 据 数 据 资料 的 内 容 来 实 现 的信 息 检 索 , 了具 有 布 尔 逻 辑 检 除 索 功 能 外 , 具 有 还 并 直
一
、
前
言
1应 用背 景 。随 着全 球 信 息化 的快 速 普 及 和 发展 , 自供 应 系 、 来 统、 企业 生 产 系统 、 公 自动 化 系 统 、 事 系 统 、 办 人 财务 管 理 系 统 等 无 不 在 积 累和 使用 着 各 种 数 据 、 息 资 源 。除 此 之 外 , 自于 大 型 信 来 门户 网站 、 业 网站 、 过 各 种 传输 设 备 传递 的会 议 资 料 、 存 在 个 企 通 保 人笔 记本 和 P A 中的产 品 资料 和 家 庭 计 算 机存 储 的信 息 也 使 用 到 D 了各 种 数据 、 息 资源 。可 以说 数据 资源 无 处 不 在 、 时 不 在 、 设 信 无 无 备不 在 , 但是 这 些 资源 是 否 可 以快 速 的 掌 握 在 手 中 , 也 许 就 不 那 这 么简 单 了 。普 遍实 现 信息 化 后 , 获 取 方 式 的 缺乏 以及 获 取 手 段 数据 的局 限性 , 就成 为 了 当今 国 内外 信 息化 建 设 面 临 的主 要不 足 。 2 主要 索 引技 术 的 区 别 。本 文 主 要 基 于 微 软 平 台 , 对 S L 、 针 O Sre 05 S L 05对 全 文 索 引技 术 进 行介 绍 。与 其 他 索 引 技 术 不 ev 20 (Q 20) r 同 , 如关 系 数 据查 询 、 维数 据 库 查 询 以及 基 于 X 例 多 ML的 X ur、 Qe y X a 技术 , 文 索 引技 术 主 要 处 理 的 对 象 是 基 于 超 大 数 据 量 的 文 Pt h 全 本 数 据 , 似 于 结构 化 二进 制 数 据上 LK 类 IE语 句 的 模糊 查 询 。
0310_sql2005索引 视图

索引和视图一:索引:1.基本概念定义:是一种与表有关(但独立于表)的可选的数据库对象,加快检索数据的一种有效方式作用(1)减少查询操作的时间开销(即加快检索数据)(2)减少IO访问次数索引在数据库中的作用类似于目录在书籍中的作用,用来提高查找信息的速度。
使用索引查找数据,无需对整表进行扫描,可以快速找到所需数据2.索引类型1)簇索引又叫聚集索引簇索引在数据表中按照物理顺序存储数据。
因为在表中只有一个物理顺序,所以在每个表中只能有一个簇索引。
在查找某个范围内的数据时,簇索引是一种非常有效的索引,因为这些数据在存储的时候已经按照物理顺序排好序了,行的物理存储顺序和索引顺序完全相同默认情况下,SQL Server为PRIMARY KEY约束所建立的索引为簇索引。
在语句CREATE INDEX中,使用CLUSTERED选项建立簇索引2)非簇索引非簇索引是具有与表的数据完全分离的结构,它不会改变行的物理存储顺序,但是它是由数据行指针(指向表中数据行)和一个索引值(一般为键)构成的3)唯一索引唯一索引可以确保所有数据行中任意两行的被索引列不包括NULL在内的重复值。
如果是复合唯一索引(有多列),则该索引可以确保索引列中每个组合都是唯一的。
唯一索引不允许有两行具有相同的索引值,在创建惟一索引时,如果该列上已经存在重复值,系统会报错3.SSMS创建索引在对象资源管理器中,右键单击要对其创建索引的表,再单击“修改”。
此时,将在表设计器中打开该表。
(或表中选择索引,右键选择新建。
)右键选择“索引/键”输入和修改相应内容。
4.Sql语句创建索引1)创建列索引:use jxau1208;go--创建非聚集索引create index ix_sname on t_students(sname);create nonclustered index ix_sname_sex on t_students(sname,ssex);--创建聚集索引:只能包含一个聚集索引create clustered index ix_snamec on t_students(sname);--创建唯一索引create unique index ix_snameu on t_students(sname)2)索引管理:--查看索引sp_helpindex t_students--修改索引名sp_rename't_students.ix_sname_sex','ix_aaa'--删除索引--删除索引必须在索引名称前写出表名称,指明是哪个表的索引文件,否则无法删除索引drop index t_students.ix_aaa二:视图:1.基本概念1)概念:虚拟表,视图仅仅是一种逻辑对象,它本身没有数据。
SQL优化-索引—SQL2005

SQL优化-索引微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)……(一)深入浅出理解索引结构实际上,您可以把索引理解为一种特殊的目录。
微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。
下面,我们举例来说明一下聚集索引和非聚集索引的区别:其实,我们的汉语字典的正文本身就是一个聚集索引。
比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地排在字典的前部。
如果您翻完了所有以“a”开头的部分仍然找不到这个字,那么就说明您的字典中没有这个字;同样的,如果查“张”字,那您也会将您的字典翻到最后部分,因为“张”的拼音是“zhang”。
也就是说,字典的正文部分本身就是一个目录,您不需要再去查其他目录来找到您需要找的内容。
我们把这种正文内容本身就是一种按照一定规则排列的目录称为“聚集索引”。
如果您认识某个字,您可以快速地从自典中查到这个字。
但您也可能会遇到您不认识的字,不知道它的发音,这时候,您就不能按照刚才的方法找到您要查的字,而需要去根据“偏旁部首”查到您要找的字,然后根据这个字后的页码直接翻到某页来找到您要找的字。
但您结合“部首目录”和“检字表”而查到的字的排序并不是真正的正文的排序方法,比如您查“张”字,我们可以看到在查部首之后的检字表中“张”的页码是672页,检字表中“张”的上面是“驰”字,但页码却是63页,“张”的下面是“弩”字,页面是390页。
很显然,这些字并不是真正的分别位于“张”字的上下方,现在您看到的连续的“驰、张、弩”三字实际上就是他们在非聚集索引中的排序,是字典正文中的字在非聚集索引中的映射。
浅析SQLServer的全文索引技术

浅析SQLServer的全文索引技术浅析SQLServer 2005的全文索引技术目录第一章.什么是全文索引技术 (1)1.1 全文索引技术简介 (1)1.2 全文索引技术基本原理 (2)1.3 全文索引与普通索引的区别 (2)第二章.配置全文索引服务 (3)系统初始配置 (3)1.2定义表的全文索引目录和索引字段 (4)1.3选择或创建新的索引目录 (5)SQL论文软件技术A班第三章.新建表计划和新建目录计划 (5)1.1新建表计划 (6)1.2新建目录计划 (7)1.2填充计划里面显示计划信息内容 (8)第四章.全文索引的管理 (11)1.1创建全文索引的注意事项 (11)1.2创建全文目录 (12)1.3创建全文索引 (13)1.4更改全文索引属性 (13)第五章.论文小结 (14)第一章.什么是全文索引技术1.1 全文索引技术简介全文索引为在字符串数据中进行复杂的词搜索提供有效支持。
全文索引存储关于重要词和这些词在特定列中的位置的信息。
全文查询利用这些信息,可快速搜索包含具体某个词或一组词的行。
全文索引包含在全文目录中。
每个数据库可以包含一个或多个全文目录。
一个目录不能属于多个数据库,而每个目录可以包含一个或多个表的全文索引。
一个表只能有一个全文索引,因此每个有全文索引的表只属于一个全文目录。
全文第 1 页共17 页 1261101009 陈振作目录和索引不存储在它们所属的数据库中。
目录和索引由Microsoft 搜索服务分开管理。
全文索引必须在基表上定义,而不能在视图、系统表或临时表上定义。
可以做这样一个比喻。
大家大概都见过档案柜,档案柜是将各种档案按照分类登记在档案索引卡上,这个档案柜中的索引卡就象建立的全文索引,通过这些档案索引卡可以迅速定位你要查找的卷宗所在的位置。
如果不建立这些索引卡,如果卷宗数量不多还好,一旦档案数量很多的时候显然很难找到期望的卷宗,这就类似使用Like的情形。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(转)sql2005全文索引理論部份前言在数据库中快速搜索数据,使用索引可以提高搜索速度,然而索引一般是建立在数字型或长度比较短的文本型字段上的,比如说编号、姓名等字段,如果建立在长度比较长的文本型字段上,更新索引将会花销很多的时间。
如在文章内容字段里用like语句搜索一个关键字,当数据表里的内容很多时,这个时间可能会让人难以忍受。
在SQL Server中提供了一种名为全文索引的技术,可以大大提高从长字符串里搜索数据的速度,在本節里,将会对全文索引进行详细的介绍(1)全文索引概念:全文索引与普通的索引不同,普通的索引是以B-tree结构来维护的,而全文索引是一种特殊类型的基于标记的功能性索引,是由Microsoft SQL Server全文引擎服务创建和维护的。
使用全文索引可以快速、灵活地为存储在SQL Server数据库中的文本数据创建基于关键字查询的索引,与like 语句不同,like语句的搜索是适用于字符模式的查询,而全文索引是根据特定语言的规则对词和短语的搜索,是针对语言的搜索。
(2)全文索引常用术语(2.1)全文索引:一种特殊的索引,能在给定的列中存储有关重要的词及位置的信息,使用这些信息可以快速进行全文查询,搜索包括特定词或词组的行.(2.2)全文目录:全文目录是存储全文索引的地方,全文目录必须驻留在与SQL Server实例相关联的本地硬盘上,每个全文目录可用于满足数据库内的一个或多个表的索引需求.(2.3)断字符与词干分析器:断字符与词干分析器都是用于对全文索引的数据进行语言分析的.语言分析通常都会涉及到查找词的边界和组合动词两个方面,其中要查找词的边界,也就是确定哪几个字符是"词",称之为"断字".组合动词也就是词干分析,用于分析词.根据语言的不同,语言分析规则也不尽相同,由此可以为每个全文索引列指定不同的语言.每种语言的断字符能够使得访问语言生成的词更为准确(2.4)标记:由断字符标识的词或字符串(2.5)筛选器:用于从存储在varbinary(max)或image列中的文件内提取指定的文本类型的文本,当varbinary(max)或image列中包含带有特定文件扩展名的文档时,全文搜索会使用筛选器来解释二进制数据,筛选器会从文档中提取文本化信息并用于建立索引.(2.6)填充(爬网):创建维护全文索引的过程叫填充,也叫爬网.(2.7)干扰词:经常出现,但又不是要搜索的词.为了精简全文索引,这些词通常会被忽略.(3)全文索引的体系SQL Server的全文索引是由SQL Server FullText Search服务来维护的,该服务可以在Windows操作系统的【管理工具】-【服务】里找到,如图3.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服务通过断字符来将收集到的文本数据分隔成各个单独的标记或关键字。
这个过程就是全文索引的过程。
由于全文索引与普通的索引不同,全文索引并不是存储在数据表中,而是存储在全文目录中,所以在使用全文索引来搜索数据时,其运行的流程和普通索引也不一样。
如图所示,当SQL Server发出全文搜索的请求后,会将搜索的条件传递给全文搜索引擎过滤器,经过MSFTEFD处理后,将数据提供给MSFTESQL,再由MSFTESQL从全文目录中找到符合要求的数据,再返回给SQL Server进行后续操作。
这就是进行全文搜索的过程理論部份前言在数据库中快速搜索数据,使用索引可以提高搜索速度,然而索引一般是建立在数字型或长度比较短的文本型字段上的,比如说编号、姓名等字段,如果建立在长度比较长的文本型字段上,更新索引将会花销很多的时间。
如在文章内容字段里用like语句搜索一个关键字,当数据表里的内容很多时,这个时间可能会让人难以忍受。
在SQL Server中提供了一种名为全文索引的技术,可以大大提高从长字符串里搜索数据的速度,在本節里,将会对全文索引进行详细的介绍(1)全文索引概念:全文索引与普通的索引不同,普通的索引是以B-tree结构来维护的,而全文索引是一种特殊类型的基于标记的功能性索引,是由Microsoft SQL Server全文引擎服务创建和维护的。
使用全文索引可以快速、灵活地为存储在SQL Server数据库中的文本数据创建基于关键字查询的索引,与like语句不同,like语句的搜索是适用于字符模式的查询,而全文索引是根据特定语言的规则对词和短语的搜索,是针对语言的搜索。
(2)全文索引常用术语(2.1)全文索引:一种特殊的索引,能在给定的列中存储有关重要的词及位置的信息,使用这些信息可以快速进行全文查询,搜索包括特定词或词组的行.(2.2)全文目录:全文目录是存储全文索引的地方,全文目录必须驻留在与SQL Server实例相关联的本地硬盘上,每个全文目录可用于满足数据库内的一个或多个表的索引需求.(2.3)断字符与词干分析器:断字符与词干分析器都是用于对全文索引的数据进行语言分析的.语言分析通常都会涉及到查找词的边界和组合动词两个方面,其中要查找词的边界,也就是确定哪几个字符是"词",称之为"断字".组合动词也就是词干分析,用于分析词.根据语言的不同,语言分析规则也不尽相同,由此可以为每个全文索引列指定不同的语言.每种语言的断字符能够使得访问语言生成的词更为准确(2.4)标记:由断字符标识的词或字符串(2.5)筛选器:用于从存储在varbinary(max)或image列中的文件内提取指定的文本类型的文本,当varbinary(max)或image列中包含带有特定文件扩展名的文档时,全文搜索会使用筛选器来解释二进制数据,筛选器会从文档中提取文本化信息并用于建立索引.(2.6)填充(爬网):创建维护全文索引的过程叫填充,也叫爬网.(2.7)干扰词:经常出现,但又不是要搜索的词.为了精简全文索引,这些词通常会被忽略.(3)全文索引的体系SQL Server的全文索引是由SQL Server FullText Search服务来维护的,该服务可以在Windows操作系统的【管理工具】-【服务】里找到,如图3.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服务通过断字符来将收集到的文本数据分隔成各个单独的标记或关键字。
这个过程就是全文索引的过程。
由于全文索引与普通的索引不同,全文索引并不是存储在数据表中,而是存储在全文目录中,所以在使用全文索引来搜索数据时,其运行的流程和普通索引也不一样。
如图所示,当SQL Server发出全文搜索的请求后,会将搜索的条件传递给全文搜索引擎过滤器,经过MSFTEFD处理后,将数据提供给MSFTESQL,再由MSFTESQL从全文目录中找到符合要求的数据,再返回给SQL Server进行后续操作。