在什么情况下使用全文索引呢?

在什么情况下使用全文索引呢?

   启动 Microsoft Search 服务

  开始菜单 >SQL程序组 >服务管理器 >下拉筐 >Microsoft Search 服务 >启动它

  

   Microsoft SQL ServerMSSQLFTDATASQLServerConfig目录里建一个非空noise chs文件

  非空noise chs文件 也有人说是空的noise chs文件 但我每次都往里写几个没用的字母

  

   建立环境

  打开查询分析器 >执行下列脚本

  

  create database test 创建test数据库

  use test       选择test数据库

  create table dali (ID int not null primary key MyImage image FileType varchar( ) FileNmae varchar( )) 创建dali表

   dali表中 Id MyImage FileType 三列是必须的 因为要对image列索引的话 必须要有一个主键列 一个image列 一个存放文件类型的列

   我们知道在windows系统中文件类型是靠扩展名来区分的所以FileType列也就是用来放 文件的扩展名

  

  

  sp_fulltext_database enable 为全文索引启用数据库

  sp_fulltext_catalog My_FullDir create   创建一个叫My_FullDif的全文目录

  

  declare @Key sysname ; select @Key=c name from syscolumns a sysconstraints b sysobjects c where a id=object_id( dali ) and a name= ID and a id=b id and nstid=c id and c name like PK%

  exec sp_fulltext_table dali create My_FullDir @Key  这两句是为全文索引 对表进行标记

  

  sp_fulltext_column dali MyImage add x FileType   这句是指定MyImage列为全文索引列 FileType是类型列

  

   在c盘下放一个扩展名为doc的word文件 一个扩展名为xls的excel文件 一个扩展名为htm的网页文件 个扩展名为bmp的图片

  共 个 大家可根据实际情况放入!

  

   插入数据

  建立下面这个存储过程

  

  CREATE PROCEDURE sp_textcopy

   @srvname  varchar ( )

   @login   varchar ( )

   @password  varchar ( )

   @dbname   varchar ( )

   @tbname   varchar ( )

   @colname  varchar ( )

   @filename  varchar ( )

   @whereclause varchar ( )

   @direction char( )

  AS

  /* 这是使用textcopy工具将文件插入到数据库中 如果有前台工具可以用前台开发工具将文件插入 这里为了演示 */

  DECLARE @exec_str varchar ( )

  SELECT @exec_str= textcopy /S +@srvname+ /U +@login+ /P +@password+ /D +@dbname+ /T +@tbname+ /C +@colname+ /W +@whereclause+ /F +@filename+ / +@direction

  EXEC master xp_cmdshell @exec_str

  

  

  insert dali values( x doc 大力的doc ) 其中第二列是 x 它是一个 进制数对应image列 是必须的 不要写null 第三列是文件类型 既扩展名

  

  sp_textcopy 你的服务器名 sa 你的密码 test dali MyImage c:大力的doc doc where ID= I

   依次参数是 实例名 用户名 密码 数据库名 表名 image列名 路径及文件名 条件(你必须保证它只选择一行) I

  

  insert dali values( x bmp 图片 )

  sp_textcopy 你的服务器名 sa 你的密码 test dali MyImage c:图片 bmp where ID= I 注意条件是 ID=

  

  insert dali values( x xls Excel文件 )

  sp_textcopy 你的服务器名 sa 你的密码 test dali MyImage c:Excel文件 xls where ID= I 注意条件是 ID=

  

  insert dali values( x htm 网页 )

  sp_textcopy 你的服务器名 sa 你的密码 test dali MyImage c:网 where ID= I 注意条件是 ID=

  

   上面的语句 要保证类型一样 路径正确 条件唯一正确应该就可以了

  

   填充全文索引

  

  sp_fulltext_table dali start_full 第一个参数是表名 第二个参数是启动表的全文索引的完全填充

  

   可以开始你的实验了

  

  select * from dali where contains(MyImage J老师 )

  select * from dali where contains(MyImage 海老师 )

   END

在什么情况下使用全文索引呢?

相关文章:

你感兴趣的文章:

标签云: