注册
 找回密码
 注册
江西广告网
查看: 321|回复: 0
打印 上一主题 下一主题

MS SQL Server2000全文索引image列全攻略

[复制链接]

该用户从未签到

1
跳转到指定楼层
发表于 2009-1-12 10:10:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
  今天“百年不遇”的停电了,看了一天书。晚上搞了一下全文索引,决定把心得贴出来,我尽量写的详细,大家共同学习,欢迎指正!      1、启动 Microsoft Search 服务        开疾说?->SQL程序组-->服务管理器-->下拉筐-->Microsoft Search 服务-->启动它      2、    ..\Microsoft SQL Server\MSSQL\FTDATA\SQLServer\Config\目录里建一个非空noise.chs文件    非空noise.chs文件,也有人说是空的noise.chs文件,但我每次都往里写几个没用的字母。      3、建立环境        打开查询分析器-->执行下列脚本:   --------------------------------------------   create database test ---创建test数据库   use test       ---选择test数据库   create table dali (ID int not null primary key,MyImage image,FileType varchar(255),FileNmae varchar(255)) ---创建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('a') and a.name='a' and a.id=b.id and b.constid=c.id and c.name like 'PK%'   exec sp_fulltext_table 'dali','create','My_FullDir',@Key ----这两句是为全文索引,对表进行标记      sp_fulltext_column 'dali','MyImage','add',0x0804,'FileType' ---这句是指定MyImage列为全文索引列,FileType是类型列   ------------------------------------------------   4、在c盘下放一个扩展名为doc的word文件,一个扩展名为xls的excel文件,一个扩展名为htm的网页文件,个扩展名为bmp的图片共4个,大家可根据实际情况放入!      5、插入数据       建立下面这个存储过程   --------------------------------------------------   CREATE PROCEDURE sp_textcopy    @srvname  varchar (30),    @login   varchar (30),    @password  varchar (30),    @dbname   varchar (30),    @tbname   varchar (30),    @colname  varchar (30),    @filename  varchar (30),    @whereclause varchar (40),    @direction char(1)   AS   /* 这是使用textcopy工具将文件插入到数据库中,如果有前台工具可以用前台开发工具将文件插入,这里为了演示 */   DECLARE @exec_str varchar (255)   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(1,0x,'doc','大力的doc') ---其中第二列是 0x 它是一个16进制数对应image列,是必须的,不要写null,第三列是文件类型,既扩展名      sp_textcopy '你的服务器名','sa','你的密码','test','dali','MyImage','c:\大力的doc.doc','where ID=1','I'   -------依次参数是:实例名,用户名,密码,数据库名,表名,image列名,路径及文件名,条件(你必须保证它只选择一行),I   ---------------------------------------------------------------------------------------------------------------------   insert dali values(2,0x,'bmp','图片')   sp_textcopy '你的服务器名','sa','你的密码','test','dali','MyImage','c:\图片.bmp','where ID=2','I' --注意条件是 ID=2      insert dali values(3,0x,'xls','Excel文件')   sp_textcopy '你的服务器名','sa','你的密码','test','dali','MyImage','c:\Excel文件.xls','where ID=3','I' --注意条件是 ID=3      insert dali values(4,0x,'htm','网页')   sp_textcopy '你的服务器名','sa','你的密码','test','dali','MyImage','c:\网页.htm','where ID=4','I' --注意条件是 ID=4      ----------上面的语句,要保证类型一样,路径正确,条件唯一正确应该就可以了      6、填充全文索引      sp_fulltext_table 'dali','start_full' ---第一个参数是表名,第二个参数是启动表的全文索引的完全填充      7、可以开始你的实验了      select * from dali where contains(MyImage,'J老师')      select * from dali where contains(MyImage,'海老师')      ------END----------   --调试环境:SQLServer2K、Windows2Kas       <
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表