全文索引image列,全攻略!

原创 2003年04月02日 09:01:00

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

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高级服务器

全文索引image列,全攻略

全文索引image列,全攻略!作者:game.19xz 来源:19xz.com 今天“百年不遇”的停电了,看了一天书。晚上搞了一下全文索引,决定把心得贴出来,我尽量写的详细,大家共同学习,欢迎指正!1...
  • star_xin
  • star_xin
  • 2005年01月11日 14:50
  • 376

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

今天“百年不遇”的停电了,看了一天书。晚上搞了一下全文索引,决定把心得贴出来,我尽量写的详细,大家共同学习,欢迎指正!1、启动 Microsoft Search 服务   开始菜单-->SQL程序组-...
  • Teng_s2000
  • Teng_s2000
  • 2005年10月25日 14:45
  • 835

Oracle全文索引之六 附:CONTAINS函数

oracle 中对于 CONTAINS 函数的用法出处:http://blog.csdn.net/youjunbin_2006/archive/2008/11/18/3330065.aspx 查询住址...
  • qq_23412263
  • qq_23412263
  • 2017年04月20日 15:08
  • 616

oracle全文索引(全文检索)的介绍,使用和创

全文索引 Oracle的全文检索实现逻辑,通过lexer词法分析器,讲把值的term找出来。记录在一组的DR$开头的表里面(主要是DR$xxxI表),主要记录term的位置,frequency频率,...
  • weeknd
  • weeknd
  • 2017年05月10日 19:46
  • 1469

oracle全文索引的创建和使用,以及一些体会

oracle全文索引的创建和使用,以及一些体会 http://space.itpub.net/13379967/viewspace-474767...
  • orion61
  • orion61
  • 2011年10月26日 13:19
  • 1616

SqlServer 全文索引创建及测试

-- 创建测试表 -- DROP TABLE FullTextIndexing CREATE TABLE FullTextIndexing ( ID INT IDENTITY(1,1) NOT NU...
  • kk185800961
  • kk185800961
  • 2015年04月13日 09:22
  • 6925

全文索引和普通索引的比较

 普通 SQL 索引全文索引存储时受定义它们所在的数据库的控制。存储在文件系统中,但通过数据库管理。每个表允许有若干个普通索引。每个表只允许有一个全文索引。当对作为其基础的数据进行插入、更新或删除时,...
  • dragonfly0939
  • dragonfly0939
  • 2008年10月28日 22:31
  • 2863

17-mysql优化之全文索引的创建

创建全文索引 全文索引,主要是对文件,文本的检索,比如文章。 create table articles(id int unsigned auto_increment not null prima...
  • u010653050
  • u010653050
  • 2016年01月13日 23:54
  • 555

Oracle全文索引之二 创建

创建创建索引的准备工作测试环境 在测试用户myoralce用户下执行:create table YU_TEST(        id number,        nam...
  • qq_23412263
  • qq_23412263
  • 2017年04月20日 14:27
  • 325

MySQL · 引擎特性 · InnoDB 全文索引简介

前言 从MySQL5.6版本开始支持InnoDB引擎的全文索引,语法层面上大多数兼容之前MyISAM的全文索引模式。所谓全文索引,是一种通过建立倒排索引,快速匹配文档的方式。MySQL支持三种模式的...
  • YABIGNSHI
  • YABIGNSHI
  • 2016年10月08日 09:53
  • 2337
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:全文索引image列,全攻略!
举报原因:
原因补充:

(最多只允许输入30个字)