• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

sqlserver 搞代码 3年前 (2018-06-16) 118次浏览 已收录 0个评论

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

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

http://www.gaodaima.com/35486.html全文索引image列,全攻略!_sqlserver

2、
  ../Microsoft SQL Server/MSSQL/FTDATA QLServer/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 ‘[email protected]+’ /U ‘[email protected]+’ /P ‘[email protected]+’ /D ‘[email protected]+’ /T’[email protected]+’ /C ‘[email protected]+’ /W”‘[email protected]+'” /F”‘[email protected]+'” /’[email protected]
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高级服务器

欢迎大家阅读《全文索引image列,全攻略!_sqlserver,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址