专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »数据库 » 全文索引:全文索引image列,全攻略! »正文

全文索引:全文索引image列,全攻略!

来源: 发布时间:星期五, 2008年9月26日 浏览:251次 评论:0

今天“百年不遇”的停电了,看了一天书。晚上搞了一下全文索引,决定把心得贴出来,我尽量写的详细,大家共同学习,欢迎指正!

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(\'dali\') and a.name=\'ID\' 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----------
--调试环境:SQLServer2000企业版、Windows2000高级服务器

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: