SQL Server 2000全文检索
一、如何在SQL中启用全文检索功能
1、证全文检索服务是否安装
通过储存过程FULLTEXTSERVICEPROPERTY(返回有关全文服务级别属性的信息)来验证搜索服务(全文组件)是否安装。如Select fulltextserviceproperty (‘IsFullTextInstalled’):返回1表示已安装全文组件;返回0表示未安装全文组件;返回Null表示输入无效或发生错误。
2、启动全文检索服务(MircoSoft Search)
3、打开数据库全文索引的支持
为全文索引启用数据库:
Use Northwind
Exec sp_fulltext_database ‘enable’
从数据库中删除所有目录:
Use Northwind
Exec sp_fulltext_database ‘disable’
二、建立全文目录
1、创建全文目录
Use Northwind
Exec sp_fulltext_catalog 'ft_ Catalog ', 'create'
2、重建全文目录
Use Northwind
Exec sp_fulltext_catalog 'ft_ Catalog ', ' rebulid'
3、启动全文目录的填充
Use Northwind
Exec sp_fulltext_catalog 'ft_ Catalog ', 'start_full'
4、停止全文目录的填充
Use Northwind
Exec sp_fulltext_catalog 'ft_ Catalog ', 'stop'
5、删除全文目录
Use Northwind
PK_Products
Exec sp_fulltext_catalog 'ft_ Catalog ', 'drop'
三、为表建立全文索引数据元
1、建立的唯一索引
Use Northwind
Exec sp_fulltext_table 'Products','create', 'ft_ Catalog', ' PK_Products '
2、设置全文索引列名
Use Northwind
Exec sp_fulltext_table 'Products','create', 'ft_ Catalog', ' PK_Products '
3、设置全文索引列名
Use Northwind
Exec sp_fulltext_column ' Products ', ProductName', 'add'
Go
Exec sp_fulltext_column ' Products ', QuantityPerUnit', 'add'
Go
4、激活全文索引
Use Northwind
Exec sp_fulltext_table 'Products','activate
5、填充全文索引目录
Use Northwind
Exec sp_fulltext_catalog 'ft_ Catalog ', 'start_full'
四、使用Transact-SQL进行全文检索,我们使用CONTAINS、FREETEXT等谓词
1、检索ProductName中,即包含b又包含c的所有列
Use Northwind
SELECT *
FROM Products
WHERE CONTAINS(ProductName, '"c*" and "b*" ')
2、检索ProductName中,即包含chai chang tofu之一的所有列
Use Northwind
SELECT *
FROM Products
WHERE FREETEXT(ProductName, 'chai chang tofu ')
五、全文查询有关的系统存储过程
(1)启动数据库的全文处理功能(sp_fulltext_datebase);
(2)建立全文目录(sp_fulltext_catalog);
(3)在全文目录中注册需要全文索引的表(sp_fulltext_table);
(4)指出表中需要全文检索的列名(sp_fulltext_column)
(5)为表创建全文索引(sp_fulltext_table);
(6)填充全文索引(sp_fulltext_catalog)。
全文查询支持
Microsoft® SQL Server™ 2000 在接收带全文构造的 Transact-SQL 语句时,使用全文提供程序从 Microsoft 搜索服务检索所需信息。全文构造是 CONTAINS 或 FREETEXT 谓词,或者是 CONTAINSTABLE 或 FREETEXTTABLE 行集函数。如果不知道包含搜索条件的列,全文构造可以在全文索引中引用多列。该进程的流程如下图所示。
这一进程涉及的步骤包括:
应用程序给 SQL Server 实例发送带全文构造的 Transact-SQL 语句。
SQL Server 关系引擎通过查询系统表验证全文构造,确定全文索引是否覆盖列引用。关系引擎将每个 SQL 语句简化为一系列行集操作,并使用 OLE DB 将这些操作传递给基础组件,通常是存储引擎。关系引擎通过全文提供程序而不是存储引擎,将任何全文构造转换成对行集的请求。请求的行集是满足搜索条件和等级的键集,而这个等级表示每个键的数据满足搜索条件的程度。向全文提供程序发送的行集请求命令包括全文检索条件。
全文提供程序验证请求并将搜索条件更改为由Microsoft 搜索服务的查询支持组件使用的形式。将请求发送到搜索服务。
查询支持组件使用搜索引擎组件从全文索引析取所请求的数据。然后以行集的形式将这些数据传递回全文提供程序。
全文提供程序将这个行集返回给关系引擎。
关系引擎将它从存储引擎和全文提供程序收到的所有行集进行组合,以生成发送回客户端的最终结果集。
全文目录和索引
Microsoft® SQL Server™ 2000 全文索引为在字符串数据中进行复杂的词搜索提供有效支持。全文索引存储关于重要词和这些词在特定列中的位置的信息。全文查询利用这些信息,可快速搜索包含具体某个词或一组词的行。
全文索引包含在全文目录中。每个数据库可以包含一个或多个全文目录。一个目录不能属于多个数据库,而每个目录可以包含一个或多个表的全文索引。一个表只能有一个全文索引,因此每个有全文索引的表只属于一个全文目录。
全文目录和索引不存储在它们所属的数据库中。目录和索引由 Microsoft 搜索服务分开管理。
全文索引必须在基表上定义,而不能在视图、系统表或临时表上定义。 全文索引的定义包括:
能唯一标识表中各行的列(主键或候选键),而且不允许 NULL 值。
索引所覆盖的一个或多个字符串列。
全文索引由键值填充。每个键的项提供与该键相关联的重要词(干扰词或终止词除外)、它们所在的列和它们在列中的位置等有关信息。
格式化文本字符串(如 Microsoft® Word™ 文档文件或 HTML 文件)不能存储在字符串或 Unicode 列中,因为这些文件中的许多字节包含不构成有效字符的数据结构。数据库应用程序可能仍需要访问这些数据并对其应用全文检索。因为 image 列并不要求每一字节都构成一个有效字符,所以许多站点将这类数据存储在 image 列中。SQL Server 2000 引入了对存储在 image 列中的这些类型的数据执行全文检索的能力。SQL Server 2000 提供筛选,可从 Microsoft Office™ 文件(.doc、.xls 和 .ppt 文件)、文本文件(.txt 文件)及 HTML 文件(.htm 文件)中析取文本化数据。设计表时除包括保存数据的 image 列外,还需包括绑定列来保存存储在 image 列中的数据格式的文件扩展名。可以创建引用 image 列和绑定列的全文索引,以便在存储于 image 列中的文本化信息上启用全文检索。SQL Server 2000 全文检索引擎使用绑定列中的文件扩展名信息,选择从列中析取文本化数据的合适的筛选。
全文索引是用于执行两个 Transact-SQL 谓词的组件,以便根据全文检索条件对行进行测试:
CONTAINS
FREETEXT
Transact-SQL 还包含两个返回符合全文检索条件的行集的函数:
CONTAINSTABLE
FREETEXTTABLE
SQL Server 在内部将搜索条件发送给 Microsoft 搜索服务。Microsoft 搜索服务查找所有符合全文检索条件的键并将它们返回给 SQL Server。SQL Server 随后使用键的列表来确定表中要处理的行。
全文索引
对 Microsoft® SQL Server™ 2000 数据的全文支持涉及两个功能:对字符数据发出查询的能力和创建及维护基础索引以简化这些查询的能力。
全文索引在许多地方与普通的 SQL 索引不同。
分享到:
相关推荐
在SQL Server 2000中实现全文检索服务的过程可以分为以下几个步骤: 1. 在SQL Server中建立一个全文数据库,例如名为English-Data的数据库。 2. 在该数据库中建立一个表,例如名为Papers的表。表Papers的字段包括...
下面我们将详细介绍如何在SQL Server 2008中启用并使用全文检索。 #### 二、启用全文检索服务 1. **启动SQL Full-text服务** - 首先确保SQL Server Full-text服务已启动。如果服务未启动,可以通过控制面板的服务...
【SQL Server 2000全文检索服务】是微软公司为了解决海量信息检索问题而提供的功能,它基于SQL Server 2000数据库系统,实现了高效、快速的全文搜索能力。全文检索允许用户通过关键词搜索数据库中的文本内容,而不...
如何在大量文字中加快搜索关键词的速度?– SQL Server的全文检索
除了基本的全文检索,SQL Server 2000还提供了高级搜索功能,如使用WHERE子句的CONTAINS和FREETEXT,以及使用WITHIN GROUP子句进行范围搜索。这些高级查询语法使系统可以根据复杂的条件过滤和排序试题,例如,根据...
本文介绍了SQLServer2000中全文检索使用
本压缩包包含的“SQL Server 2000帮助文档”是官方提供的详尽参考资料,旨在帮助用户更好地理解和使用SQL Server的各项功能。其中,“SQl函数.chm”文件专注于介绍SQL Server 2000中的各种函数,而“SQL Server 2000...
在SQL Server 2000中,用户还可以使用T-SQL(Transact-SQL)进行编程,这是一种扩展了标准SQL的编程语言,可以编写存储过程、触发器、函数等数据库对象,实现更复杂的业务逻辑。 尽管SQL Server 2000已经是一款较老...
SQL Server 2000作为微软公司的一款面向高端的数据库系统,它的全文检索功能是该数据库管理系统中的一项重要特性,尤其在处理大量数据和提供快速检索方面显示出独特优势。全文检索是指对非结构化数据进行索引,以便...
6. 在文档片段中,还提到了ODBC(开放式数据库连接),DSN(数据源名称),以及SQL Server的版本问题,这些都暗示着在使用全文检索时,可能需要配置相关的数据连接和确保使用的SQL Server版本支持该特性。...
MicroSoft SqlServer 2000/2005 中的全文索引是由一系列存储过程来完成的,这些存储过程按先后顺序罗列如下: 1. 启动数据库的全文索引服务存储过程:sp_fulltext_service 2. 初始化全文索引存储过程:sp_fulltext_...
本教程将深入探讨SQL Server 2000的主要功能、安装配置、数据库管理以及SQL查询语言的使用。 一、SQL Server 2000概述 SQL Server 2000基于标准的SQL(结构化查询语言)协议,提供了高效、安全的数据存储和检索服务...
SQL Server 2000是微软公司推出的一款关系型数据库管理系统,主要用于存储、管理和检索数据。它是Microsoft SQL Server系列中的一个重要版本,在企业和组织中被广泛应用于各种业务场景中。SQL Server 2000不仅提供了...
SQL Server 2000是微软公司推出的一款关系型数据库管理系统,它在20世纪末至21世纪初广泛应用于企业级数据管理。本教程旨在为初学者提供一个全面了解和学习SQL Server 2000的平台,帮助读者从安装、配置到实际操作...
在使用 SQL Server 2000 的过程中,可能会遇到重新安装失败的问题,这是由于卸载 SQL Server 之后,重新安装时无法安装成功,安装程序在“安装程序正在启动服务器并安装您选择的配置”时无响应。本文档将详细介绍...
《SQL Server 2000 应用系统开发教程》是一部深入浅出的教程,结合了PPT演示和源码示例,旨在帮助初学者掌握使用VB(Visual Basic)与SQL Server 2000进行应用程序开发的核心技能。在本教程中,我们将探讨以下几个...
SQL Server 2000是微软...这个“SQL Server 2000 入门与提高课件”将通过幻灯片和PPT形式,深入浅出地讲解上述各个知识点,帮助学习者掌握SQL Server 2000的使用技巧,从而在实际工作中更好地管理和利用数据库资源。
然而,正如标题所提及的,SQL Server 2005的全文检索功能存在一些已知的问题,尤其是与SQL Server 2000相比,其分词方法的变化可能导致一些不可预见的查询失败。本文将深入探讨这些BUG,并提供相应的解决方案。 ...
SQL Server 2000的核心功能之一是其强大的数据存储和检索能力。本教程将详细解释如何创建、设计和优化数据库结构,包括表的设计、索引的使用、约束的设定等,这些都是保证数据完整性和性能的关键。同时,还会介绍...