0

0

SQL2000 全文索引完全图解

php中文网

php中文网

发布时间:2016-06-07 18:00:05

|

1233人浏览过

|

来源于php中文网

原创

全文索引是解决海量数据模糊查询的较好解决办法。

全文检索可以对varchar,text,image型字段进行检索,但一个表最多只能建一个全文索引
SQL Server 2000 引入了对存储在 image 列中的这些类型的数据执行全文检索的能力。
如果没有全文索引,对字符的模糊查询只能对基表进行全表扫描(或索引扫描),
执行模糊查询都需要对全表扫描或索引扫描意味着消耗大量IO。
如果模糊查询经常发生,会造成数据库性能恶化。
本篇为简单起见,仅在varchar型字段上图文演示非常完整的而且是高效可行的全文索引
创建及维护过程.
1:
在企业管理器中展开要建立全文索引的数据库,右击“全文目录”,选择“新建全文目录”
如 图1 所示。
可以修改全文目录的路径,通过将全文目录放在单独的磁盘或磁盘阵列可以提高效率。
建议不要对整个全文目录进行任何形式的填充调度。

=================== 图1 ===================
2:
接下来对具体的表添加全文索引。
全文索引不能建立在视图上,只能建立在有唯一索引(主键也是唯一索引)的基础表上。
下图2 演示如何对表建立全文索引。
演示中的 t_fulltext 表的建表及初始化数据的脚本如下:
create table t_fulltext
(
rid int identity(1,1),
title varchar(256) not null,
writetime datetime default(getdate())
)
go
alter table t_fulltext add constraint pk_fulltext primary key ( rid )
go
--初始化数据
insert into t_fulltext(title) values('山东蓬莱河西金矿透水事故2人死亡3人失踪(21:29)')
insert into t_fulltext(title) values('泰国将在广西南宁设立总领事馆(21:10)')
insert into t_fulltext(title) values('河北安徽等12省减免农业税等政策落实到位(20:43)')
insert into t_fulltext(title) values('台湾学者托梦预测陈水扁元旦讲话(20:04)')
insert into t_fulltext(title) values('澳门特首何厚铧发表元旦献辞向市民问候新年(20:02)')
insert into t_fulltext(title) values('南水北调首个建成项目山东段济平干渠通水成功(19:48)')
insert into t_fulltext(title) values('组图:北京110摩托车巡警亮相(18:07)')
insert into t_fulltext(title) values('福建广西发生患者死亡事件 医院责任人被处理(17:33)')
insert into t_fulltext(title) values('北京大容量公交车运营首日遭遇乘客爆满(17:30)')
insert into t_fulltext(title) values('北京公安系统今天全部停休严查五环内放炮(17:30)')
insert into t_fulltext(title) values('研究发现海龙基因酶对禽流感病毒有杀伤作用(17:27)')
insert into t_fulltext(title) values('上海世博会筹办进入实质性操作面临五大挑战(17:03)')
insert into t_fulltext(title) values('台媒体称陈水扁元旦祝词必将老调重弹(15:30)')
insert into t_fulltext(title) values('珠三角咸潮影响范围小于去年(15:12)')
insert into t_fulltext(title) values('上海市民体验轨道交通4号线列车(组图)(14:53)')
insert into t_fulltext(title) values('广州亿元集资诈骗案主犯王日升被判死缓(图)(14:44)')
insert into t_fulltext(title) values(' 评论:取消农业税让民众共享经济增长成果(17:30)')
insert into t_fulltext(title) values('香港媒体谈美国应对中国新策略:合作与防范(15:57)')
insert into t_fulltext(title) values('专访中国地震局局长陈建民:地震是能够预测的(15:56)')
insert into t_fulltext(title) values('评论:野蛮公交莫成城市丑陋形象代言人(13:27)')
insert into t_fulltext(title) values('台媒体称当局与民间企业对立非民众之福(12:50)')

=================== 图2 ===================
3:出现的欢迎界面如 图3

=================== 图3 ===================
4:为全文索引选择唯一索引,如 图4

=================== 图4 ===================
5:选择全文索引的列,注意一张表只能建一个全文索引。建
议不要选择断词的语言,这样实际会使用默认的断词语言。如图5 所示。
通过运行
sp_configure 'default full-text language'
可以查看默认的断词语言,如我的机器上运行上条语句,config_value 值是 2052
它表示简体中文。
其它代码所表示的语言可以查阅Book Online的“default full-text language”关键词。
由于SQL Server对中文断词并不是很高明,因此并不能依靠SQL Server带给您非常智能的搜索,这意味着您的全文搜索结果,可能有不希望出现的记录,或您希望出现的记录没有出现。

=================== 图5 ===================
6:将表指派到全文目录,如 图6 所示,也可以通过此界面创建新目录。

=================== 图6 ===================
7:接下来会提示对表进行填充调度,为能够准实时地把基表的全文索引列的修改(增、删、改)准实时地应用到全文索引,建议使用下面介绍的其它方法进行索引维护。如 图7 所示,建议不要在这里添加任何调度,直接点击“下一步”。
如果数据不会再修改,则在一次完全填充以后,不用再增加其它类型的表级填充。
如果实施到本步骤,不再添加任何形式的表调度,那么基表数据的更新,将不能更新到全文索引。

=================== 图7 ===================
8:如 图8 所示出现的完成界面提示中点击“完成 ”,请稍微等待直到出现下一界面。

=================== 图8 ===================
9:在如 图9 所示的界面中点击“确定”。
由于尚未在表上添加任何调度,因此还需要继续设置。

=================== 图9 ===================
10:在企业管理器中右击 f_fulltext 表,如 图10 所示,选中“更改跟踪”。
选中更改跟踪后,以后对基表数据的修改,才能反映到全文索引中。
特别注意:一旦选中“更改跟踪”,根据经验,其实是必须对该表进行完全填充的。
如果是在线使用的全文索引数据库,选中“更改跟踪”会导致性能迅速下降,导致全文索引
无法使用。

=================== 图10 ===================
11: 在企业管理器中右击 f_fulltext 表,如 图11 所示,选中“更新后台中的索引”。
到本步,全文索引就完全完成了。由于我们选中了“更改跟踪”,此时实际已经开始了表的完全填充。
根据经验,300万条全文索引字段长为 50 的表,需要8到10小时才能完成完全填充。

=================== 图11 ===================
12:可以通过双击全文目录下的全文索引,查看该全文目录的属性,如 图12 所示,状态为“空闲”,而项目计数大于0,则表示完全填充已经完成了。

=================== 图12 ===================
13:如何进行全文索引查询(仅简单介绍)
全文索引查询建议使用 CONTAINS 及 FREETEXT 谓词进行查询。
如果关键词仅包括干扰词(有关干扰词的信息,请参阅Book Online的“干扰词”关键字)
select * from t_fulltext where contains(title,'3')
则会报如下错误
服务器: 消息 7619,级别 16,状态 1,行 1
全文操作运行失败。查询子句只包含被忽略的词。
使用下面的语法,能避免出现错误,且能够确实查询出正确的记录。
select * from t_fulltext where contains(title,'"*3*"')
13 台媒体称陈水扁元旦祝词必将老调重弹(15:30) 2005-12-31 23:17:17.670
10 北京公安系统今天全部停休严查五环内放炮(17:30) 2005-12-31 23:17:17.653
17 评论:取消农业税让民众共享经济增长成果(17:30) 2005-12-31 23:17:17.670
9 北京大容量公交车运营首日遭遇乘客爆满(17:30) 2005-12-31 23:17:17.653
8 福建广西发生患者死亡事件 医院责任人被处理(17:33) 2005-12-31 23:17:17.653
(所影响的行数为 5 行)
全文索引的简单介绍就到这里了,希望能起个抛砖引玉的作用。

去日租网站系统
去日租网站系统

去日租程序是一款具有强大的功能的基于.NET+SQL2000+AJAX构架的房屋出租管理系统。 日租网站管理系统,采用ASP.NET2.0语言开发,它集成租房模块、文章模块、订单模块、邮箱短信模块、用户模板、SEO优化模块、房间模块、支付模块等多项强大功能。系统有多年经验的高级工程师采用三层架构开发,页面代码全部采用DIV+CSS,完全符合SEO标准,有利于搜索引擎关键排名优化。日租网站

下载

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Python 序列化
Python 序列化

本专题整合了python序列化、反序列化相关内容,阅读专题下面的文章了解更多详细内容。

12

2026.02.02

AO3官网入口与中文阅读设置 AO3网页版使用与访问
AO3官网入口与中文阅读设置 AO3网页版使用与访问

本专题围绕 Archive of Our Own(AO3)官网入口展开,系统整理 AO3 最新可用官网地址、网页版访问方式、正确打开链接的方法,并详细讲解 AO3 中文界面设置、阅读语言切换及基础使用流程,帮助用户稳定访问 AO3 官网,高效完成中文阅读与作品浏览。

200

2026.02.02

主流快递单号查询入口 实时物流进度一站式追踪专题
主流快递单号查询入口 实时物流进度一站式追踪专题

本专题聚合极兔快递、京东快递、中通快递、圆通快递、韵达快递等主流物流平台的单号查询与运单追踪内容,重点解决单号查询、手机号查物流、官网入口直达、包裹进度实时追踪等高频问题,帮助用户快速获取最新物流状态,提升查件效率与使用体验。

98

2026.02.02

Golang WebAssembly(WASM)开发入门
Golang WebAssembly(WASM)开发入门

本专题系统讲解 Golang 在 WebAssembly(WASM)开发中的实践方法,涵盖 WASM 基础原理、Go 编译到 WASM 的流程、与 JavaScript 的交互方式、性能与体积优化,以及典型应用场景(如前端计算、跨平台模块)。帮助开发者掌握 Go 在新一代 Web 技术栈中的应用能力。

15

2026.02.02

PHP Swoole 高性能服务开发
PHP Swoole 高性能服务开发

本专题聚焦 PHP Swoole 扩展在高性能服务端开发中的应用,系统讲解协程模型、异步IO、TCP/HTTP/WebSocket服务器、进程与任务管理、常驻内存架构设计。通过实战案例,帮助开发者掌握 使用 PHP 构建高并发、低延迟服务端应用的工程化能力。

16

2026.02.02

Java JNI 与本地代码交互实战
Java JNI 与本地代码交互实战

本专题系统讲解 Java 通过 JNI 调用 C/C++ 本地代码的核心机制,涵盖 JNI 基本原理、数据类型映射、内存管理、异常处理、性能优化策略以及典型应用场景(如高性能计算、底层库封装)。通过实战示例,帮助开发者掌握 Java 与本地代码混合开发的完整流程。

9

2026.02.02

go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

62

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

56

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

28

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
php-src源码分析探索
php-src源码分析探索

共6课时 | 0.5万人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.4万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 821人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号