SQL Server 学习笔记--全文搜索(1)
2007-04-08 22:43
183 查看
使用全文检索的步骤:
1、如果要给某个表创建一个全文索引,必须先给它建立一个唯一性索引。
2、创建全文索引。
全文索引使用SQL Server Management Stadio之类的工具来创建,但它们是作为独立于数据库的文件存储在磁盘上的,而且由MSFTESQL服务来维护。编目(catalog)是用来组织索引的,可以创建任意多个编目来组织索引,但是这些编目不能横跨数据库。
3、组装索引
当全文索引刚建成的时候,它们是无价值的。由于索引由MSFTESQL服务管理,所以必须明确命令该服务给全文索引填充要搜索的那些text型字段的信息。全文索引的这种填充称为组装索引(Populating index)。当数据随着时间的推移而发生变化时,将需要命令MSFTESQL服务重建全文索引以匹配变化了的数据,这个过程称为重组装。
4、执行全文搜索
全文搜索功能其实就是使用全文操作符的SELECT查询。查找全文索引的全文操作符有4个:
CONTAINS和CONTIANSTABLE 用于从文本列中取出准确与近似的单词和短语。近似的意思是如果查找cook,则也可以找到cooks、cooked、cooking等。
FREETEXT 和FREETEXTTABLE 不如CONTAINS操作那么精确;例如,如果查找字符串“SQL is a database server",则会接收到包含SQL 、database、server及其派生词的结果。
CONTAINS/FREETEXT 和CONTIANSTABLE /FREETEXTTABLE的区别在于,后者不返回正常的结果集,而是创建一个供搜索的新表。 CONTIANSTABLE /FREETEXTTABLE通常用在要求连接原始表和新表的复杂查询中。
5、管理全文搜索
最重要的工作是重新组装全文索引,可以在最初创建编目时计划这项任务。在“对象资源管理器”中右击被索引的表,选择“全文索引”->“属性”->“计划”选项卡,可以修改现有的任务计划或创建新的任务计划。
管理全文搜索的另一项任务就是备份索引本身。虽然全文索引通过SQL Server Management Studio来管理,但它们实际上不是SQL Server数据库的一部分。事实上,它们存放在SQL Server外面的一个独立目录中,该目录由MSFTESQL管理。要备份这些索引,必须先停止MSFTESQL服务,然后才能对含有索引的数据库执行完全备份。SQL Server将自动把这些索引文件包含在该备份中。
建立全文索引的步骤详解:
在Modify Table界面中,鼠标右键,选择Index/Keys...
在Columns中选择字段,Type选择Unique Key。
接下来就可以定义全文检索了,如下图选择Define Full-Text Index...
接下来就是向导界面了,按照向导一步一步做,就不会错了!
选择刚才定义的Unique Index。
选择你要用来全文检索的字段。
这个设置控制索引在数据发送变化时是否更新,是自动还是手动重新组装索引。
选择用来存放索引的目录。
创建用来自动重新组装索引的执行计划。如果数据经常更新,则需要经常重新组装全文索引,也许一天一次。可以将重新组装计划成每次对单个表或整个编目发生。
向导的最后一个屏幕上显示选项的汇总信息,点击Finish创建索引。
开始建立。
完全填充全文索引
相关的SQL语句:
1、查看当前数据库的状态
SELECT DATABASEPROPERTY ('pubs','IsFulltextEnabled')
2、打开FullText功能
sp_fulltext_databse 'enable'
关闭此功能
sp_fulltext_databse 'disable'
3、链接服务器
当要检索的数据分布在多个服务器上时,需要链接服务器并执行链接服务器查询。有两种链接服务器查询:永久和特别。
对于经常性链接服务器查询,需要使用sp_addlinkedserver存储过程永久地链接服务器,使登陆到本地服务器的用户登录到远程服务器并保持登录状态。如链接到一个名为washington的SQL Server服务器:
sp_addlinkedserver ' washington' ,'SQL Server'
要查询远程服务器上的数据库,只要给SELECT查询添加上服务器名就可以了,如:
SELECT * FROM washington.Adventureworks..HumanResources.Employee
链接到一台名为Marketing的Access计算机,要访问的数据库为Northwind:
sp_addlinkedserver 'Marketing' , 'Microsoft.Jet.OLEDB.4.0' , 'OLE DB Provider for Jet', 'C:/MSOFFICE/Access/Samples/Northwind.mdb'
SELECT * FROM Marketing.Northwind..Employee
执行特别链接服务器查询涉及到OPENROWSET命令,该命令创建一个临时表,每次查询完毕后,链接自动断开。例如用特别查询访问数据库Northwind:
SELECT Access.*
FROM OPENROWSET( 'Microsoft.Jet.OLEDB.4.0' , 'C:/MSOFFICE/Access/Samples/Northwind.mdb','admin','mypwd',Orders) AS Access
GO
1、如果要给某个表创建一个全文索引,必须先给它建立一个唯一性索引。
2、创建全文索引。
全文索引使用SQL Server Management Stadio之类的工具来创建,但它们是作为独立于数据库的文件存储在磁盘上的,而且由MSFTESQL服务来维护。编目(catalog)是用来组织索引的,可以创建任意多个编目来组织索引,但是这些编目不能横跨数据库。
3、组装索引
当全文索引刚建成的时候,它们是无价值的。由于索引由MSFTESQL服务管理,所以必须明确命令该服务给全文索引填充要搜索的那些text型字段的信息。全文索引的这种填充称为组装索引(Populating index)。当数据随着时间的推移而发生变化时,将需要命令MSFTESQL服务重建全文索引以匹配变化了的数据,这个过程称为重组装。
4、执行全文搜索
全文搜索功能其实就是使用全文操作符的SELECT查询。查找全文索引的全文操作符有4个:
CONTAINS和CONTIANSTABLE 用于从文本列中取出准确与近似的单词和短语。近似的意思是如果查找cook,则也可以找到cooks、cooked、cooking等。
FREETEXT 和FREETEXTTABLE 不如CONTAINS操作那么精确;例如,如果查找字符串“SQL is a database server",则会接收到包含SQL 、database、server及其派生词的结果。
CONTAINS/FREETEXT 和CONTIANSTABLE /FREETEXTTABLE的区别在于,后者不返回正常的结果集,而是创建一个供搜索的新表。 CONTIANSTABLE /FREETEXTTABLE通常用在要求连接原始表和新表的复杂查询中。
5、管理全文搜索
最重要的工作是重新组装全文索引,可以在最初创建编目时计划这项任务。在“对象资源管理器”中右击被索引的表,选择“全文索引”->“属性”->“计划”选项卡,可以修改现有的任务计划或创建新的任务计划。
管理全文搜索的另一项任务就是备份索引本身。虽然全文索引通过SQL Server Management Studio来管理,但它们实际上不是SQL Server数据库的一部分。事实上,它们存放在SQL Server外面的一个独立目录中,该目录由MSFTESQL管理。要备份这些索引,必须先停止MSFTESQL服务,然后才能对含有索引的数据库执行完全备份。SQL Server将自动把这些索引文件包含在该备份中。
建立全文索引的步骤详解:
在Modify Table界面中,鼠标右键,选择Index/Keys...
在Columns中选择字段,Type选择Unique Key。
接下来就可以定义全文检索了,如下图选择Define Full-Text Index...
接下来就是向导界面了,按照向导一步一步做,就不会错了!
选择刚才定义的Unique Index。
选择你要用来全文检索的字段。
这个设置控制索引在数据发送变化时是否更新,是自动还是手动重新组装索引。
选择用来存放索引的目录。
创建用来自动重新组装索引的执行计划。如果数据经常更新,则需要经常重新组装全文索引,也许一天一次。可以将重新组装计划成每次对单个表或整个编目发生。
向导的最后一个屏幕上显示选项的汇总信息,点击Finish创建索引。
开始建立。
完全填充全文索引
相关的SQL语句:
1、查看当前数据库的状态
SELECT DATABASEPROPERTY ('pubs','IsFulltextEnabled')
2、打开FullText功能
sp_fulltext_databse 'enable'
关闭此功能
sp_fulltext_databse 'disable'
3、链接服务器
当要检索的数据分布在多个服务器上时,需要链接服务器并执行链接服务器查询。有两种链接服务器查询:永久和特别。
对于经常性链接服务器查询,需要使用sp_addlinkedserver存储过程永久地链接服务器,使登陆到本地服务器的用户登录到远程服务器并保持登录状态。如链接到一个名为washington的SQL Server服务器:
sp_addlinkedserver ' washington' ,'SQL Server'
要查询远程服务器上的数据库,只要给SELECT查询添加上服务器名就可以了,如:
SELECT * FROM washington.Adventureworks..HumanResources.Employee
链接到一台名为Marketing的Access计算机,要访问的数据库为Northwind:
sp_addlinkedserver 'Marketing' , 'Microsoft.Jet.OLEDB.4.0' , 'OLE DB Provider for Jet', 'C:/MSOFFICE/Access/Samples/Northwind.mdb'
SELECT * FROM Marketing.Northwind..Employee
执行特别链接服务器查询涉及到OPENROWSET命令,该命令创建一个临时表,每次查询完毕后,链接自动断开。例如用特别查询访问数据库Northwind:
SELECT Access.*
FROM OPENROWSET( 'Microsoft.Jet.OLEDB.4.0' , 'C:/MSOFFICE/Access/Samples/Northwind.mdb','admin','mypwd',Orders) AS Access
GO
相关文章推荐
- SQL Server 2005 T-SQL学习笔记:TOP的增强
- SQL Server 2005 T-SQL学习笔记:PIVOT和UNPIVOT
- SQL Server 函数学习笔记⑥函数的高级应用=》按规则拆分列形成行数据
- SQL Server 2012 学习笔记4
- 【SQL Server学习笔记】数据库的创建、设置、空间管理
- SQL Server 全文索引查询T-SQL学习笔记之一(Full-text index)
- 【SQL Server学习笔记】15:再谈SELECT语句的元素
- 【SQL Server学习笔记】18:对字符数据的处理
- sql server 2005学习笔记之触发器简介(一)
- 【SQL Server学习笔记】SQL Server的安全对象、权限
- SQL Server 全文索引查询T-SQL学习笔记
- 【SQL Server学习笔记】Service Broker创建异步的、数据驱动的消息应用程序
- 学习笔记——SQL SERVER2014内存数据库
- sql server 的T-SQL 学习笔记(八)
- SQL SERVER 学习笔记(一)创建数据库
- SQL SERVER 存储过程学习笔记
- 数据库学习笔记(SQL Server)
- 【SQL Server学习笔记】数据库的创建、设置、空间管理
- 【SQL Server学习笔记】事务、锁定、阻塞、死锁
- SQL SERVER 存储过程学习笔记