SQL Server 学习笔记--全文搜索(1)

本文详细介绍了在SQL Server中设置和使用全文搜索的步骤,包括创建唯一性索引、建立全文索引、执行全文搜索以及管理全文搜索。全文搜索操作符CONTAINS和FREETEXT用于精确和模糊搜索,全文索引的维护可通过计划任务定期重新组装。同时,文章还提到了如何备份全文索引,并提供了启用和关闭全文搜索功能的SQL语句。

使用全文检索的步骤:

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
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值