SQL Server 2005全文检索技术
SQL Server 2005全文检索在数据查询中的应用

MS T S L服务负责进行 以下操作。 FEQ
()填 充 和 管 理 全 文 目录 。 1
()使在 S LS r r 2 Q ev 数据库 中对表进行全文搜索更 简单 。 e M FE Q S r S L负责从表 中访问和筛选数 据及进行 断字 和词干 分析的组件组成 ,包括下列组件 如表 1 所示 。 S LS re 0 5中 的全 文 搜 索 的体 系 结 构_ 如 图 1所 Q e r20 v 2 _
a ay i l r gi f r t n t e if r t n a e t n n omai n s c r y c n r l p l ai n W i e su y o e u e o n lssf t i n o ma i , h n o ma i g n d i fr t e u t o to p i t s. t t t d ft s f i en o o a o i a c o hh h
Abtat F let erhi t h n l tx d t a ema betn i tem jreh ooybs f n igif mao , src : uh x sac ade et a s h i ojca d s h ao t n l aeo dn o t n so a t n , c g i f nr i
要 技 术 基 础 。对 S LSre 0 5全 文 检 索 功 能 的使 用方 法进 行 了研 究 ,并 利 用 A PN T技 术 对 全 文检 索 功 能 进 行 Q evr 0 2 S .E
应用。
关键 词 : 全 文 目录 ; 文 索 引 ; 文 查 询 ; S .E 全 全 A PN T
1 引言
S LSre 0 5能够 实现对 数据库 表 中的纯 字符 数据进 Q e r 0 v 2
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
第1章 SQL Server 2005 概述

2022/9/3
17 / 25
外围应用配置器
外围应用配置器用于启用、禁用、开始和停止 SQL Server 安装的一些功能、服务和远程连接。 如需要开启或管理这些应用时,通过SQL Server 外围应用配置器将这些应用打开或进行管理,实 现数据库实例的更多控制。 单击“SQL Server 2005”→“配置工 具”→“SQL Server外围应用配置器” ,启动外 围应用配置器。即可对数据库服务和连接的运行 状态进行配置。
2022/9/3
15 / 25
SQL Server 其他管理工具
报表服务配置器 外围应用配置器 数据库引擎优化顾问 事件探察器 命令行实用工具 Visual Studio 2005
2022/9/3
16 / 25
报表服务配置器
使用Reporting Services配置工具可以配置 SQL Server 2005 Reporting Services的安装。 如果使用“仅文件”安装选项安装报表服务器, 必须使用此工具来配置服务器,否则服务器将不 可用。 如果使用默认配置安装选项安装报表服务器, 可以使用此工具来验证或修改在安装过程中指定 的设置。
SQL Server 2005数据库平台包括关系型数 据库、复制服务、通知服务、集成服务、分析服 务、报表服务、管理工具、开发工具。
2022/9/3
6 / 25
SQL Server 2005应用功能
○ .NET Framework集成 ○ Web Services ○ ○ 快照隔离支持 ○ SQL管理对象 ○ XML技术
2022/9/3
22 / 25
Visual Studio 2005
在解决方案资源管理器中管理某个解决方案中 所有不同的项目。 使用属性窗口可查看和更改在编辑器和设计器 中打开的对象的属性。 工具箱显示在商业智能项目中使用的各种项。 当前使用的设计器或编辑器不同,工具箱中的选 项卡和项也会有所不同。 设计器是创建或修改商业智能对象的工具窗口。 设计器提供对象的代码视图和设计视图。打开项 目中的某个对象时,该对象在此窗口的设计器中 打开。
SQL Server 全文索引查询

SQL Server 全文索引查询T-SQL学习笔记之一(Full-text index)2009-12-11 11:29引言这段时间为了提高海量字符串数据的查询效率,我对字段添加了全文索引。
首先全文索引相对于传统的索引是有区别的,这是因为传统的索引主要是以首字母开始建立的索引,处理like 'keword%'这样的查询会很高效,但是如果查询时不限定首字母,而只是包含某个词,比如like '%keyword%'这样的查询,实际操作中无法使用传统索引加速查询效率,而只能一项一项比较了。
而全文索引正是提供了“包含”式查询机制,查询一个长字符串中是否包含给定关键词的功能,这无论是在搜索引擎或是网站的搜索平台都是很有用处的。
首先,推荐一本学习SQL Server全文索引的书籍,这本书详细的讲解了全文索引的方方面面,甚至还阐述许多设计搜索引擎的思想和方法。
书名是《Pro Full-Text Search in SQL Server 2008》,是Apress出版的。
这本书的内容是按章划分的,同时由浅入深,从一般的技巧到高级的技巧。
我这里就简单分享一下基本的全文查询方法,更多高级的技巧应该在实际应用中按需进行学习。
要实现全文查询,首先安装的SQL Server实例要支持全文查询服务,可以查看windows服务是否有全文索引服务。
如果没有,则要重新安装SQL Server并选择添加功能,将Full-Text功能选中,然后再安装或升级。
有了全文查询服务,还不能直接进行查询,需要先在想要建立全文索引的字段上建立一个全文索引。
方法是打开企业管理器,选择字段所在表格,然后点击右键,选择"Full-text inde”,然后选择"define Full-text index"就能进入设置面板。
需要注意的是,全文索引只能建立在Unique(唯一)字段上,并且每个表最多只能有一个全文索引字段,因此要慎重。
第1章SQLServer2005入门教程

后来,Ashton-Tate公司退出了SQL Server 的开发。
而在Windows NT推出后,Microsoft与 Sybase在SQL Server的开发上就分道扬镳 了:
–Microsoft将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server的 Windows NT版本;
32
•在IIS中配置SQL XML支持(Configure SQL XML Support in IIS)
•IIS(Internet Information Services 因 特网信息服务),此工具可以在运行IIS的 计算机上定义、注册虚拟目录,并在虚拟目 录和SQL Server 实例之间创建关联。
9
客户机/服务器方式
客户机/服务器方式是在后端使用专门的 服务器,在服务器中建立大型数据库系 统,如常用的SQL Server, Oracle和 Informix等,该服务器称为数据库服务器. 前端客户应用系统可以是各种软件工具 开发的系统。
10
文件服务器和客户机/服务器 方式的比较
文件服务器方式: 客户端向文件服务器 发出数据库请求,文件服务器通过网络 向客户端发送完成的文件拷贝,造成网 络中传输冗余的数据,负载多.
19
2. 新的数据类型
• SQL Server 2005 中增加了3 种新的数据类型: BIGINT、SQL_VARIANT和TABLE。
3. 数据行中的Text类型数据
• SQL Server 2005 中可以将TEXT 和IMAGE 类型 的数据直接存放到表的数据行中,而不是存放到 数据页中,这就减少了用于存储TEXT 和IMAGE 类型的空间,并相应减少了磁盘处理这类数据的 I/O 数量。
如何用C#实现数据库全文检索

如何用C#实现数据库全文检索目前行业网站的全文检索的方式主要有两种方式一:通过数据库自带的全文索引方式二:通过程序来自建全文索引系统以Sql Server 2005为例2005本身就自带全文索引功能,你可以先对数据库表建立索引,具体如何建索引网上搜索一下,建立完索引之后,你就可以用SQL来实现检索功能,例如:select * from ytbxw where contaiins(字段,' 中国');多个查询值之间可以用and 或or来实现,在单表以及单表视图上建全文索引对2005来说根本不是问题,但在多表视图建全文索引2005目前还无法实现这个功能,拿为例,其每个栏目的信息都是分开存放的,所以在检索上就无法用该方法来解决这个问题.下面重点说一下如何用程序来实现检索功能如果你想自己开发一个全文检索系统,我想这是相当复杂事情,要想实现也不是那么容易的事情,所以在这里我推荐一套开源程序,那就是 DotLucene,我想大家可能都听过这个东东吧,那我就讲讲如何来实现多表情况下的全文检索.1、新建winform项目,把.dll添加到该项目中来2、创建一个类,类名可以自己取public class Indexer{private IndexWriter writer;//在指定路径下创建索引文件public Indexer(string directory){writer = new IndexWriter(directory, new StandardAnalyzer(), true); writer.SetUseCompoundFile(true);}//将信息添加到索引文件中/*Field.Text:为索引+读取Field.UnIndexed:不需要做索引*/public void AddHtmlDocument(string path,string title,string content) {Document doc = new Document();doc.Add(Field.Text("text", content));doc.Add(Field.UnIndexed("path", path));doc.Add(Field.Text("title", title));writer.AddDocument(doc);}//解析HTML,过滤HTML代码private string parseHtml(string html){string temp = Regex.Replace(html, "<[^>]*>", "");return temp.Replace(" ", " ");}//从页面中获取文章标题private string getTitle(string html){Match m = Regex.Match(html, "<title>(.*)</title>");if (m.Groups.Count == 2)return m.Groups[1].Value;return "(unknown)";}//添加新闻到索引public void AddNews(){//从数据库获取记录(这部分略过)for (int i = 1; i <= PageSize; i++){RootId =int.Parse(dr["ClassId"].ToString().Substring(0, 2));// 写入索引parseHtml(dr["Content"].ToString()));}/info/}//关闭索引public void Close(){writer.Optimize();writer.Close();}}以上就是建立索引的过程,在数据读取的时候最好分披读,比如一次300条,这样效率会比较高.。
sql_server_2005数据库查询

数据库查询是数据库中一个最重要也是最基本的功能,它是从数据库中检索符合条件的数据记录的选择过程。
SQL Server 2005的数据库查询使用T-SQL语言,其基本的查询语句是SELECT 语句。
SELECT [ALL|DISTINCT] [ TOP <operator> ][<column_name >] [AS< column_name >] [, [<column_name >] <Select operator >[AS < column_name >]…]FORM[<database_name >] < table_name >[[AS]Local_Alias] [[INNER | LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER]JOIN[ <database_name>] <table_name> [[AS]Local_Alias][ON<联接条件> ]][INTO <select> |TO FILE <file_name> [ADDITIVE]| TO PRINTER [PROMPT] | TO SCREEN][PREFERENCE PreferenceName][NOCONSOLE][PLAIN][NOW AIT][WHERE < operator 1> [AND < operator 2>…][AND | OR < operator >…]][GROUP BY < operator > ][, < operator > …]][HA VING ]< operator > ][UNION [ALL] <SELECT column_name > ][ORDER BY < column_name > [ASC |DESC] [, < column_name >8.1.1 选择列选择列指的是通过限定返回结果的列组成结果表。
SQL Server 2005的相关基础知识

本章主要介绍SQL Server 2005的相关基础知识,包括:●SQL Server的发展历史;●SQL Server 2005各版本的应用环境与功能比较、SQL Server 2005的新特性;●安装Microsoft SQL Server 2005的硬件条件和软件环境;●Microsoft SQL Server 2005的安装与卸载;●Microsoft SQL Server 2005工具的简介。
2.1 SQL Server 2005简介Microsoft的SQL Server作为众多数据库软件的一种,是网络世界的一个支撑。
从20世纪80年代后期开发SQL Server,到2005年底SQL Server 2005的发布,Microsoft历经十几年的磨练,使SQL Server从无到有,从小到大,而且新一代的SQL Server 已经开始逐渐成为Windows操作系统未来的核心,成为主流数据库软件。
2.1.1 SQL Server的发展历史1987年,由Microsoft、Sybase和Aston-Tate三家公司共同开发了Sybase SQL Server。
1988年,由Microsoft公司、Sybase公司和Aston-Tate公司共同开发了运行于OS/2平台的SQL Server。
1992年,由Microsoft公司和Sybase公司共同开发了运行于Windows NT平台,包含较少的功能,与Windows集成,提供了易于操作的用户界面的桌面数据库系统SQL Server。
1994年,Microsoft公司与Sybase公司,各自开发自己的SQL Server。
前者开发基于Windows NT平台上的SQL Server,而后者开发基于UNIX平台上的SQL Server。
随后Microsoft公司推出了其独自开发的SQL Server 6.0。
本书所提的SQL Server若无特别说明,则专指Microsoft 公司开发的产品。
sqlserver management studio 2005中文

sqlserver management studio 2005中文【原创版】目录1.SQL Server Management Studio 2005 简介2.SQL Server Management Studio 2005 的功能3.SQL Server Management Studio 2005 的使用教程4.SQL Server Management Studio 2005 的优点与不足5.总结正文【1.SQL Server Management Studio 2005 简介】SQL Server Management Studio(简称 SSMS)是微软公司推出的一款用于管理和操作 SQL Server 数据库的图形化工具。
SQL Server Management Studio 2005 是其早期版本,虽然现在已有更新的版本,但仍然有许多用户使用它。
本文将为您介绍 SQL Server Management Studio 2005 的基本情况。
【2.SQL Server Management Studio 2005 的功能】SQL Server Management Studio 2005 具有强大的功能,可以帮助用户轻松地管理和操作 SQL Server 数据库。
主要功能包括:(1)查询和修改数据:可以使用 SQL 语句直接查询和修改数据库中的数据。
(2)设计数据库:可以创建、修改和管理数据库的结构,包括表、视图、索引等。
(3)数据同步:可以实现不同数据库之间的数据同步,方便数据共享和迁移。
(4)备份和恢复:可以对数据库进行备份和恢复,确保数据安全。
(5)性能监控:可以监控数据库的性能,发现并解决性能瓶颈。
【3.SQL Server Management Studio 2005 的使用教程】(1)连接数据库:首先需要连接到 SQL Server 数据库,可以使用“连接”菜单下的“服务器”选项,输入服务器名称、IP 地址和登录信息。
sqlserver全文检索

Sqlserver 全文检索功能浅解全文索引和全文检索是sql server 7.0的新增功能,它能够对数据中的字符类型列(如varchar、text等类型列)进行检索,并通过索引实现全文搜索查询。
sql server常规索引与全文检索相比,二者的区别如下:常规索引全文索引使用create index或约束定义创建通过删除或执行drop index语句删除使用全文索引存储过程创建和删除当插入、修改或删除数据时,sql server能够自动更新常规索引内容只能通过任务调度或执行存储过程来填充全文索引每个表可以建立多个常规索引,索引不能分组每个表只能有一个全文索引,同一个数据库中的多个全文索引可以组织为一个全文目录常规索引存储在数据库文件中全文索引存储在文件系统中为了支持全文索引操作,sql server 7.0新增了一些新存储过程和transact-sql语句,使用这些存储过程创建全文索引的SQL SERVER数据库全文索引的示例,以test数据库为例。
首先,介绍利用系统存储过程创建全文索引的具体步骤:1) 启动数据库的全文处理功能(sp_fulltext_database)2) 建立全文目录(sp_fulltext_catalog)3) 在全文目录中注册需要全文索引的表(sp_fulltext_table)4) 指出表中需要全文索引的列名(sp_fulltext_column)5) 为表创建全文索引(sp_fulltext_table)6) 填充全文目录(sp_fulltext_catalog)---------********示例********-------------说明:下面所用到的test为数据库名,dbo.T_FX_DRM_20为test数据库中的一张表,FX_D20_ID是表dbo.T_FX_DRM_20中的一个列名以对test数据库的表dbo.T_FX_DRM_20的FX_D20_ID列建立全文索引,之后使用索引查询FX_D20_ID列中包含有"*****"字符串的数据:在这之前,需要安装Microsoft Search 服务,启动SQL server全文搜索服务。
SQL Server 2005数据库实践教程

维 护 可用性
试运行
7
SQL sever2005的优势
数据库引擎是整个数据库的核心,负责处理数据的存取异动处理,新增 XML的数据类型的处理能力。从一般应用程序到企业级的解决方案都可以 藉此获得解决。全新的SQL Server 2005的数据库引擎,有以下强化的 要项。 1、分割技术: 针对大型数据表与索引建立时,藉由分割函数与分割配置,将不同数据区分 到不同的档案群组,再经由硬件的辅助加速存取。此外,分割技术可以避 免在巨大资料表中进行整个索引的重整,减轻管理的负担。 2、DDL触发程序与事件通知 如何稽核服务器的使用者动作与如何防止数据库对象意外发生,一直都是 DBA非常重视的问题,新一代的数据库引擎可以针对数据定义语言(DDL) 提供触发程序的撰写。事件通知的功能就是整合Service Broker组件, 让DDL的动作藉由Service Broker辅助,使用异步处理的方式进行作业。
5、全新T-SQL
数据库引擎除了支持SQL-92的标准语法之外,更支持许多SQL-1999新的语法,例 如Try…Catch、PIVOT、Common Table Expression、EXCEPT与INTERSECT 等语法,它可以简单化复杂的处理。此外也统一DDL的所有语法,例如登入账号、 使用者建立的DDL语法等。
15
2.1 SQL Server 2005简介
SQL Server 2005 与 Oracle 的效能比较
16
2.2 SQL Server 的定义和数据库基本结构
关系模型的数据库管理系统 客户/服务器(Client/Server)的服务模型 完善的数据库逻辑和物理结构 与.NET框架的完美结合
22
2.4 SQL Server 是通过实例运行的
sqlserver2005简介

Windows 2000 Server 、Windows Server 2003、 Windows 2000 Professional 和Windows XP Professional
Windows 2000 Server 、Windows Server 2003 、 Windows 2000 Professional 和Windows XP Professional
集成服务能更容易地集成、转换和分析来自多个异类信息源的数据,比 如多个操作系统的数据。可以对数据仓库提供提取、转换和加载 (ETL) 处理 的包。
分析服务为商业智能应用程序提供了联机分析处理 (OLAP) 和数据挖掘功 能。可以设计、创建和管理数据的多维结构,设计、创建和可视化数据挖 掘模型。在 Business Intelligence Development Studio 中,可以开发分析服务 项目
3.4 文档和教程
4 常用数据库对象
表、索引、视图、数据 库关系图、默认值、规 则、触发器、存过程、 用户等
5 SQL Server 2005数据库架构
5.1 逻辑数据库 概念数据库描述数据结构,定义数据之间的联系。 例如,“学生选课”数据库的数据结构定义如下。
学生基本信息表S(学号,姓名,性别,出生日期,系,电 话)
tempdb数据库是连接到SQL Server 2005实例的所有用户 都可用的全局资源,它保存所有临时表和临时存储过程。另外, 它还用来满足所有其他临时存储要求。
3 SQL Server 2005组件和工具
3.1 管理工具 1.SQL Server Management Studio
查询编辑器: 支持Transact-SQL
Transact-SQL语法特点
SQL Server 2005概述

1.3 SQL Server 2005的安装
1.3.1 SQL Server 2005的环境需求
1.硬件需求
SQL Server 2005有32位和64位两种版本可
用。 处理器类型:Pentium III 兼容处理器或更高 速度的处理器。 内存(RAM):最低要求:512 MB推荐使 用:1 GB 或更大
1.3.1 SQL Server 2005的环境需求
2.软件需求 (1)操作系统要求:SQL Server 2005存在
多个版本,不同版本对操作系统的要求不完 全相同。 (2)其他软件要求:需要Microsoft Windows Installer 3.1或更高版本以及 Microsoft 数据访问组件(MDAC) 2.8 SP1或 更高版本。需要Microsoft Internet Explorer 6.0 SP1或更高版本。
1.2.2 SQL Server 2005组件中的 新功能
Notification Services增强功能:是一种新
平台,用于生成发送并接收通知的高伸缩性 应用程序。 Reporting Services增强功能:是一种基于 服务器的新型报表平台。 新增的Service Broker:用于生成安全、可 靠和可伸缩的数据库密集型应用程序。
SQL Server最重要的特点是:
真正的客户机/服务器体系结构。 图形化用户界面。
丰富的编程接口工具。
1.2.1 SQL Server的主要特点
与Windows NT完全集成,利用了NT的许多
功能。 具有很好的伸缩性,可跨越多种平台使用。 对Web技术的支持。 提供数据仓库功能。
/ / / / / / / / / / / / / / / / / //// / / / / / // / / / / / / / / // / / / / / / /
第3章 SQL Server 2005数据库

3.2 系统数据库概述
1.master数据库 master数据库记录SQL Server 2005实、 例的所有系统级信息。如果master数据库不可 用,则SQL Server无法启动。 注意:不能在master数据库中创建任何用 户对象(例如表、视图、存储过程或触发器)。 master数据库包含SQL Server实例使用的系 统级信息(例如登录信息和配置选项设置)。
3.2 系统数据库概述 数据库对象
表:由行和列组成,用于存储数据 由行和列组成, 视图:是一个虚表, 视图:是一个虚表,用于查看一个或者多个表 约束:用于强制数据库完整性 约束: 索引: 索引:加快检索数据的方式 用户自定义函数: 用户自定义函数:实现用户定义的某种功能 存储过程:一组预编译的SQL语句,可以完成指定的操作 语句, 存储过程:一组预编译的 语句 触发器:一种特殊类型的存储过程, 触发器:一种特殊类型的存储过程,当某个操作影响到它 保护的数据时, 保护的数据时,它就会自动触发执行 规则: 规则:限制表中列的取值范围 默认值: 默认值:自动插入的常量值 用户自定义数据类型: 用户自定义数据类型:由用户基于已有的数据类型而定义 的新的数据类型
3.2 系统数据库概述
2.model数据库 model数据库用作SQL Server 2005实例 上创建的所有数据库的模板。对model数据库进行 的修改(如数据库大小、排序规则、恢复模式和其他 数据库选项)将应用于以后创建的所有数据库。 如果修改model数据库,之后创建的所有数据库 都将继承这些修改。例如,可以设置权限或数据库选 项或者添加对象,例如表、函数或存储过程等。
SQL Server 2005常用工具

2.3 SQL Server外围应用配置器
打开SQL Server 2005外围应用配置器的方
法是单击“开始”按钮,并依次选择“程序 |Microsoft SQL Server 2005|配置工具| SQL Server外围应用配置器”选项,系统会 打开“SQL Server外围应用配置器”对话框。
Development Studio; SQL Server联机丛书。
2.2 SQL Server 配置管理器
可以利用SQL Server配置管理器来管理SQL
Server提供的各种服务以及配置SQL Server 2005客户端以及服务器端所使用的网络协议, 以及指定其优先级。
/ / / / / / / / / / / / / / / / / //// / / / / / // / / / / / / / / // / / / / / / /
2.2 SQL Server 配置管理器
打开SQL Server配置管理器的方法是单击
“开始”按钮,并依次选择“程序 |Microsoft SQL Server 2005|配置工具| SQL Server Configuration Manager”选项, 系统会打开SQL Server配置管理应用配置器
SQL Server外围应用配置器(SQL Server
Surface Area Configuration)是SQL Server 2005提供的一个新的管理工具。通过 SQL Server外围应用配置器,可以在统一集 中的界面下设置各种SQL Server服务实例对 外沟通的渠道,降低可能的危险。
2.3 SQL Server外围应用配置器
SQL Server外围应用配置器主要包括两大部
sql2005全文检索

资讯| 操作系统| 编程| 平面| 动画| 网络| 安全| 通信| 认证| 办公| 服务器| 数据库| 企业应用| 软件应用| 存储| 电子机械| QQ| SOA∙数据库理论豆豆网> 技术应用> 数据库> SQL Ser ver > 正文SQL Server 2005全文检索技术在网站上的应用实录 2008年01月21日社区交流关键字:DataGuard checkpoint动态查询synonyms卸载SQL 2005SQL Server群集一、前言“人类失去搜索,世界将会怎样?”,同样,很难想象一个拥有极大信息量的行业网站门户没有站内全文搜索将会出现怎样的局面,网站全文检索对于挖掘网站信息和整合网站资源的价值是不言而喻的。
我们看到,通用型的搜索引擎已经成为了互联网世界的门户,而对于一个信息量极其丰富的网站而言,全网搜索或许会成为本网站的门户,正是所谓的门户之门。
实现网站全文检索有几种常见方案,比如应用数据库全文检索,开源搜索引擎,使用Google A PI等,本文我们将就如何使用SQL Server 2005多快好省地建立网站全文检索展开探讨。
二、全文检索技术说明1、应用背景先介绍下Z网站,它是国内投融资行业最大的行业门户,网站拥有海量的融资信息、投资信息、招商信息、创业信息、商机信息、资讯信息、产权交易信息、招标投标信息、中标信息、会展信息等投融资行业的信息资源。
网站全文检索实现的首要需求就在于能够让用户输入诸如行业关键字后系统能快速返回给符合用户在全范围内查找条件的记录, 从而有效地利用资源,更好地满足用户需求。
2、主要检索技术的区别有了数据但是没有被使用,那么这些数据不应该被称为信息。
它们无非是不断充斥设备和网络的比特而已,但是如何把数据挖掘出来提供给需要的人员,检索技术是其中非常有效的途径之一。
现基于微软平台,针对SQL Server 2005提供的全文检索技术进行介绍。
SQL-Server-2005基础教程

2022/3/23
临沂大学信息学院
4
SQL Server 2005基础教程
DB2
能在所有主流平台上运行(包括windows)。最适于海量 数据。DB2在企业级的应用最为广泛,在全球的500家最大的企 业中,几乎85%以上用DB2数据库服务器,而国内到97年约占 5%。
MySql
可以说这是中小企业网站Linux平台的首选自由数据库系统。 它是一个跨平台数据库系统,一个真正的多用户、多线程的SQL 数据库系统,同时是具有客户机/服务器体系结构的分布式数据 库管理系统。同时,也是Linux系统中使用最为简单的数据库系 统,安装简单、使用简单、管理也简单,且数据库系统的稳定性 也很不错。
15
数据库系统类型
SQL Server 2005基础教程
OLTP 联机事务处理系统 OLAP 联机分析处理系统
2022/3/23
临沂大学信息学院
16
SQL Server 2005基础教程
SSMS创建数据库
MDF 文件:所有的数据库都必须有一个主数据库文件。其主要 存不仅用来为数据库保存数据,也存储了构成数据库的所有其他 文件的位置。
几种数据库产品介绍
SQL Server 只能在windows上运行,没有丝毫的开放性,操作系统的
系统的稳定对数据库是十分重要的。Windows9X系列产品是偏 重于桌面应用,NT server只适合中小型企业。而且windows平 台的可靠性,安全性和伸缩性是非常有限的。它不象unix那样久 经考验,尤其是在处理大数据。 Oracle
2022/3/23
临沂大学信息学院
2
数据库定义
SQL Server 2005基础教程
数据库是对象的容器,它不仅可以存储数据,: 数据表 视图 函数 存储过程 索引 触发器
SQL Server 2005对比SQL Server 2000的性能优势

DBCC SHRINK*, DBCC INDEXDEFRAG, ALTER INDEX REORGANIZE
DBCC CHECK*, DBCC SHRINK* 的进程报告
长时间运行的CHECK*, SHRINK* 操作会记录在 sys.dm_exec_requests中
tempdb 的可伸缩性得到了增强,支持更大的工作 量
Online 建索引
建索引的同时允许 INSERT, DELETE, UPDATE, SELECT 比offline要慢 考虑增加tempdb的size
锁的内存更NUMA-aware 锁的分区
把单个的锁资源划分为多个锁资源,每个CPU一个 NL, Sch-S, IS, IU, IX模式的锁可以被单个CPU获取 S, U, X, SCH-M模式的锁必须被所有的CPU获取 在16个CPU以上的系统,分区会被默认打开
SQL2000重建和删除聚集索引会导致非聚集索引的 重建
如果聚集索引不是唯一的
SQL2005不再重建,缩短大量时间
我们保留了唯一标志以保证索引的正确
唯一标志(uniquifier) :自动添加的隐藏列
判断indroot 可以知道非聚集索引是否重建
Defrag提高索引页的顺序性和连续性。
(a, 1) – (b, 2) – (c, 3) SQL2005的速度有显著提高。
全文目录可以备份/还原
分离/附加(attach/detach db)
填充全文索引:100倍于SQL Server 2000的速度(依赖于数 据) 全文查询:一般情况下快30-50%
索引视图查询性能的提高 更聪明的连接(join)处理:
R.x = S.x and S.x > 10 暗示了 R.x = S.x and S.x > 10 and R.x > 10
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL Server 2005全文检索技术1. 前言1.1 应用背景随着我国政府和企业信息化的快速普及和发展,来自于供应链、企业生产系统、办公自动化(或公文行文)系统、人事绩效系统、财务管理系统等无一不在积累着各类数据。
不仅如此,来自于企业门户网站、通过各种手持移动设备传递的会议通知、保存在业务员笔记本和PDA中的离线产品报价和短期个人销售信息也不一而足。
可以说信息无处不在、无时不在、无设备不在,但是它们是否可以在您的手中,即政府和企业的信息系统是否可以把员工需要的信息呈送到他们的指尖之下,这恐怕是另一回事了。
信息化普遍实施后,数据获取方式、获取手段的局限,是国内信息化建设主要面临的尴尬现状。
图1:Your Data,Any Where、Any Time、Any Device. But not on your finger.1.2 主要检索技术的区别有了数据但是没有被使用,那么这些数据不应该被称为信息。
它们无非是不断充斥设备和网络的比特而已,但是如何把数据提供给必要的人员,检索技术是其中非常有效的途径之一。
本文笔者主要基于微软平台,针对SQL Server 2005提供的全文检索技术进行介绍。
与关系数据查询、多维数据库查询和基于XML的XQuery、XPath不同,全文检索技术主要处理对象是基于超大数据量的文本数据和结构化的二进制数据上类似LIKE的模糊查询。
主要区别见下表。
表1:全文检索与关系数据库查询、多维数据查询、XML查询的对比2. 全文检索技术简要介绍2.1 基本概念如上文所说,全文检索主要应用领域如下:(1)大数据量、超大数据量的结构化平文本数据和模糊匹配查找(Char、Varchar、Nvarchar)。
(2)大数据量、超大数据量的层次型XML数据展开后的查找---含模糊查找(Xml type)。
(3)标准格式的二进制非结构化Word数据的查找(VarBinary[max]、Image)。
与其他检索技术不同的是,全文检索不仅仅提供词汇层次的查询支持,而且可以根据语言环境、不同语言的特点,甚至于用户自定义的配置提供不同语义级的大容量数据模糊匹配检索支持。
为了提供语义层次的检索,SQL Server 2005的全文检索明确了如下几个概念:(1)断字符(Word Breaker):因为对于不同的语言,哪些符号可以用于词汇的分割是不同的,因此全文检索支持不同语言环境的不同断字符。
(2)标记(Token):是由断字符标识的词或字符串。
由于划分是基于特定语言完成的,因此也可以做到语义层次的支持。
(3)干扰词(Noise Word):主要是那些经常出现,但是对于检索没有多少帮助的词汇。
例如:英语中的“a”、“and”、“is”、“the”,汉语中的“的”、“不”、“以”、“了”等。
SQL Server 2005中提供配置文件,允许用户自定义自己语言、甚至与本行业、本企业的检索干扰词。
(4)词干分析器(Stemmer):通过断字符分割后,根据具体的语言和该语言的语法规程生成的特定词汇的变形。
(5)同义词:即便是同一个语言,在检索的情况下也存在同义词如何处理的问题。
如果一个检索系统不能够识别近义词,而只能识别完全匹配的词汇,那对于我们中文这种表义的语言而言会带来很大不便。
同样的,一个行业内部也有很多同义词或者是缩略语。
例如如下的词语。
广播行业:“ABC”与“英国ABC广播公司”基本上类似,但是也可能和“澳大利亚广播公司”混淆。
政府行文:“ABC”与南美的“阿根廷、巴西、智利三国”是同义词。
军事领域:“ABC”与“原子、生物、化学战”同义。
不仅如此,由于日常使用的习惯,我们在口语表达和书面语表达上也有区别,这个也需要预先定义。
例如,很多口头常用的技术产品“Win2K”、“WinXP”等,虽然说起来很习惯,但是在行文的时候,一般都很正式的称为“Windows 2000”和“Windows XP”,因此SQL Server 2005上也提供类似词汇替换的支持,而且这些支持也是与具体语言相关的。
2.2 SQL Server 2005全文检索的技术架构SQL Server 2005的全文检索其实是由三个进程共同完成的,它们的总体逻辑架构如下:图2:SQL Server 2005的总体逻辑架构其中,三个进程分别为:(1)SQL Server process (Sqlservr.exe)(2)Microsoft Full-Text Engine for SQL Server process (Msftesql.exe) (3)Microsoft Full-Text Engine Filter Daemon process (Msftefd.exe)Msftefd主要是负责监控Msftesql进程,同时从具体的数据源根据通过使用对应的过滤器,把其中的文本信息根据断字符拆分成词汇列表(Wordlist)反馈给Msftesql进程。
整个全文检索的简要执行过程如下:(1)从客户端发送的全文查询会转到 SQL Server 进程中的 SQL Server 查询处理器。
(2)查询处理器再将它传递给全文查询组件,该组件将创建 OLE DB 命令树,并将它发送到 Microsoft Full-Text Engine for SQL Server (MSFTESQL) 服务。
(3)在 MSFTESQL 进程中,全文引擎查询处理器将使用同义词库和干扰词文件以及断字符和词干分析器来处理查询。
(4)处理此查询之后,MSFTESQL 服务将结果集返回到 SQL Server 进程。
此结果集可以用于进一步进行处理,也可以返回到客户端。
3. 规划您的全文检索由于全文检索概念相对较多,与多数读者日常接触的关系数据库查询有所区别,因此上文笔者简单介绍了SQL Server全文检索技术的几个要点,下面笔者介绍一下面对国际化趋势,在本政府或企业的分布式异构信息系统环境下,如何规划全文检索服务的建设。
3.1 全文检索服务的需求收集抛开其他需求分析内容不谈,仅全文检索服务自身就有很多特定的需求需要明确,下面是笔者列举的一些内容。
功能性的需求:(1)哪些业务数据需要提供全文的检索服务?(2)这些业务数据中那些关键信息是业务人员关心的?(3)需要支持哪些国家的语言?(4)有哪些行业术语、常用缩略词、替换词?(5)需要哪些检索功能,分别基于什么范畴的关键字展开检索?非功能性的需求:(1)业务上以前是否尝试过关系数据库查询、多维数据分析解决手头的问题?(2)检索时效性要求。
(3)习惯的检索操作平台(浏览器 / 桌面),查询结果的展示方式。
(4)授权控制。
(5)查询结果的导出和发布方式要求。
3.2 全文检索服务的需求分析作为系统分析人员,在收集到这些信息后,需要从技术的角度考虑现有的技术储备是否可以完成业务的要求,根据上面的业务需求,下面是笔者认为需要考虑的技术要点:(1)是否真的有必要使用全文检索技术,以往的关系数据库查询、多维数据分析、XML数据检索是否可以满足上述功能。
(2)用户要求的数据是否分布在不同的系统中,是否分布在不同的数据库上。
(3)数据源是否位于异构的操作系统和数据库上。
(4)不同语言的信息如何存储呢,拆分到不同的表,还是在应用层合并。
还是直接通过跨语言的同义词解决不同语言之上的关键词查找。
(5)如何选择现成的产品来集成,并完成操作台开发、信息发布、查询结果导出。
(6)通过数据库授权、证书系统授权还是应用自定义授权解决访问的安全性。
3.3 数据源的规划SQL Server 2005可以同时支持如下三种数据:(1)Char、Varchar、Nvarchar(2)XML(3)VarBinary(max)、Image对于第一种,由于都是SQL Server的内置类型,因此数据提取很容易。
对于后两种,为了保证Word、Excel、Power Point之类的格式化二进制数据可以被检索,一般在规划上还要增加伪列来标明对应的文件扩展名。
这样,可以保证SQL Server 2005全文检索的过滤器可以从对应的文件中提取出需要的文本内容,并把它通过断字符拆分成有效的词汇列表(Wordlist)。
集成方式如下:图3:标准VarBinary(max)、Image、XML类型的集成方式通过查询视图sys.fulltext_document_types可以获得已经安装的过滤器(即支持的文档类型),下面是现有SQL Server 2005默认支持的文档类型:(1).ascx、.asm、.asp、.aspx、.bat、.c、(2).cmd、.cpp、.cxx、.def、.dic、.doc、(3).dot、.h、.hhc、.hpp、.htm、.html、(4).htw、.htx、.hxx、.ibq、.idl、.inc、(5).inf、.ini、.inx、.js、.log、.m3u、.mht、(6).obd、.obt、.odc、.pl、.pot、.ppt、.rc、(7).reg、.rtf、.stm、.txt、.url、.vbs、.wtx、(8).xlb、.xlc、.xls、.xlt、.xml对于远程的SQL Server,可以通过链接服务器方式访问远端数据源的全文检索系统。
若要对链接服务器执行全文查询,必须先对远程服务器上的目标表和列创建全文索引。
然后,将远程服务器添加为链接服务器。
完成这些操作后,可以在包括CONTAINS 或 FREETEXT 这些全文查询的语句中使用,不过检索对象的命名是由四部分组成的名称对链接服务器上的目标表和列进行查询。
此外,对于以往保存在Oracle、DB2、MySQL等数据库产品上的text、image 数据,也可以通过SQL Server的复制或者集成服务来进行数据同步。
这个同步要根据文本内容的更新频率、业务许可间隔、数据类型进行配置。
常用的同步方式如下:(1)通过SQL Job,基于 ODBC/OLEDB 的分布式查询定期更新。
该方式可以视为从SQL Server端,定期批量从异构数据库“拉”出数据。
(2)通过IIOP、HTTP、Trigger + JOB、External Server等方式向SQL Server 写入。
该方式可以视为异构数据库根据配置定期向SQL Server端写入,即向SQL Server “推”数据。
(3)复制:该方式可以提供更为实时的同步,即可以通过具有事务性(Transactional)的单票数据更新实现,也属于向SQL Server “推”数据。
(4)通过中间介质 Export / Import:通过平文本之类的中间介质,配合FTP、Queue等发送方式,完成异构数据库的导出和SQL Server端的异步入库。