zoukankan
html css js c++ java
如何使用sql的全文检索功能
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
查看全文
相关阅读:
使用C++与SFML编写一个简单的撞球游戏Part3——创建游戏启动界面
生命游戏
一道面试题
为目标数字添加逗号分隔,由 baidu.number.comma 想到的
制作JavaScript选择器(1)解析令牌
Team Foundation 使用第三方比较工具
Levenshtein Distance算法
计算颜色的亮度值
整理QUnit API
Scrum笔记整理
原文地址:https://www.cnblogs.com/iclotus/p/779433.html
最新文章
LeetCode Merge Sorted Array
LeetCode Search a 2D Matrix
LeetCode Remove Duplicates from Sorted List II
LeetCode Convert Sorted List to Binary Search Tree
LeetCode Distinct Subsequences
LeetCode Recover Binary Search Tree
LeetCode Remove Duplicates from Sorted List
LeetCode Partition List
LeetCode Flatten Binary Tree to Linked List
现代信息检索 小笔
热门文章
ProjectEuler 3
面对对象中的复制对象
ProjectEuler 2
序列模式挖掘 小笔
ProjectEuler 4
c# NPOI 小笔
ProjectEuler 1
使用C++与SFML编写一个简单的撞球游戏Part4——添加玩家弹板
使用C++与SFML编写一个简单的撞球游戏Part1——新建工程以及设置
使用C++与SFML编写一个简单的撞球游戏Part2——创建游戏窗口
Copyright © 2011-2022 走看看