永发信息网

建立全文检索的sql语句

答案:3  悬赏:0  手机版
解决时间 2021-03-27 22:04
建立全文检索的sql语句
最佳答案
前言:微软的SQL Server数据库是一个在中低端企业应用中占有广泛市场的关系型数据库系统,它以简单、方便、易用等特性深得众多软件开发人员和数据库管理人员的钟爱。但SQL Server 7.0以前的数据库系统由于没有全文检索功能,致使无法提供像文本内容查找此类的服务,成为一个小小的遗憾。从SQL Server 7.0起,到如今的SQL Server 2000终于具备了全文检索功能,使用户可以高效地检索存储在数据库char、varchar、text、ntext、nchar、nvarchar等数据类型列中的文本数据。
建立全文索引
在进行全文检索之前,必须先建立和填充数据库全文索引。为了支持全文索引操作,SQL Server 7.0新增了一些存储过程和Transact-SQL语句。使用这些存储过程创建全文索引的具体步骤如下(括号内为调用的存储过程名称):
1. 启动数据库的全文处理功能(sp_fulltext_
database);;
2. 建立全文检索目录(sp_fulltext_catalog);
3.在全文检索目录中注册需要全文索引的表(sp_fulltext_table);
4. 指出表中需要全文检索的列名(sp_fulltext_
column);;
5. 为表创建全文索引(sp_fulltext_table);;
6. 填充全文检索目录(sp_fulltext_catalog)。
下面举例说明如何创建全文索引,在本例中,对Test数据库Book表中Title列和Notes列建立全文索引。
use test //打开数据库
//打开全文索引支持,启动SQL Server的全文搜索服务
execute sp_fulltext_database ‘enable’
//建立全文检索目录ft_test
execute sp_fulltext_catalog ‘ft_test’, ‘create’
为Title列建立全文索引数据元,pk_title为Book表中由主键所建立的唯一索引,这个参数是必需的。
execute sp_fulltext_table ‘book’,‘create’, ‘ft_test’,‘pk_title’
//设置全文索引列名
execute sp_fulltext_column ‘book’, ‘title’, ‘add’
execute sp_fulltext_column ‘book’,‘notes’, ‘add’
//建立全文索引
execute sp_fulltext_table ‘book’, ‘activate’
//填充全文索引目录
execute sp_fulltext_catalog ‘ft_test’, ‘start_full’
至此,全文索引建立完毕。
进行全文检索
SQL Server 2000提供的全文检索语句主要有CONTAINS和FREETEXT。CONTAINS语句的功能是在表的所有列或指定列中搜索:一个字或短语;一个字或短语的前缀;与一个字相近的另一个字;一个字的派生字;一个重复出现的字。
CONTAINS语句的语法格式为:
CONTAINS({column | *}), )
其中,column是搜索列,使用“*”时说明对表中所有全文索引列进行搜索。Contains_search_
condition 说明CONTAINS语句的搜索内容,其语法格式为:
{||||}[{{AND|AND NOT|OR}}] [...n]
下面就simple_term和prefix_term参数做简要说明:
simple_term是CONTAINS语句所搜索的单字或短语,当搜索的是一个短语时,必须使用双引号作为定界符。其格式为:
{‘word’|“ phrase”}
prefix_term说明CONTAINS语句所搜索的字或短语前缀,其格式为:
{“word*” | “phrase*”}
例如,下面语句检索Book表的Title列和Notes列中包含“database”或“computer”字符串的图书名称及其注释信息:
select title, notes
from book
where contains(tilte, ‘database’) or contains(notes,‘database’)
or contains(title,‘computer’) or contains(notes,‘computer’)
FREETEXT语句的功能是在一个表的所有列或指定列中搜索一个自由文本格式的字符串,并返回与该字符串匹配的数据行。所以,FREETEXT语句所执行的功能又称做自由式全文查询。
FREETEXT语句的语法格式为:FREETEXT({column | * },‘freetext_string’)
其中,column是被搜索列,使用“*”时说明对表中的所有全文索引列进行搜索。Freetext_string参数指出所搜索的自由文本格式字符串。
例如,下面语句使用FREETEXT语句搜索Book表中包含“Successful Life”字符串的数据行:
select title, notes
from book
where freetext(*,‘Successful Life’)
全部回答
举个例子:,对test数据库book表中title列和notes列建立SQL SERVER全文检索。
//首先先启动SQL Server的全文搜索服务。
use test //打开数据库
go
//打开全文索引支持
execute sp_fulltext_database ‘enable’
//建立全文目录ft_pubs
execute sp_fulltext_catalog ‘ft_test’,‘create’
//为titles表建立全文索引数据元,pk_title为book表中由主键所建立的唯一索引,此参数必须。
execute sp_fulltext_table ‘book’,‘create’,‘ft_test’,‘pk_title’
//设置全文索引列名
execute sp_fulltext_eolumn ‘book’,‘title’,‘ add’
execute sp_fulltext_ column ‘book’,‘notes’,‘add’
//建立全文索引
execute sp_fulltexLtable ‘book’,‘activate’
//填充全文索引目录
execute sp_fulltext_ catalog ‘ft_test’,‘start_ full’
go
至此,全文索引建立完毕。
|}[{{AND|AND NOT|OR}}] [...n]
下面就simple_term和prefix_term参数做简要说明:
simple_term是CONTAINS语句所搜索的单字或短语,当搜索的是一个短语时,必须使用双引号作为定界符。其格式为:
{‘word’|“ phrase”}
prefix_term说明CONTAINS语句所搜索的字或短语前缀,其格式为:
{“word*” | “phrase*”}
例如,下面语句检索Book表的Title列和Notes列中包含“database”或“computer”字符串的图书名称及其注释信息:
select title, notes
from book
where contains(tilte, ‘database’) or contains(notes,‘database’)
or contains(title,‘computer’) or contains(notes,‘computer’)
FREETEXT语句的功能是在一个表的所有列或指定列中搜索一个自由文本格式的字符串,并返回与该字符串匹配的数据行。所以,FREETEXT语句所执行的功能又称做自由式全文查询。
FREETEXT语句的语法格式为:FREETEXT({column | * },‘freetext_string’)
其中,column是被搜索列,使用“*”时说明对表中的所有全文索引列进行搜索。Freetext_string参数指出所搜索的自由文本格式字符串。
例如,下面语句使用FREETEXT语句搜索Book表中包含“Successful Life”字符串的数据行:
select title, notes
from book
where freetext(*,‘Successful Life’)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
非洲粮食问题成因及解决措施
酸甜闷烧鱼的做法步骤图,酸甜闷烧鱼怎么做
用然组词并填空:苹果核()像一颗五角星。2.比
oppoa33手机死机了怎么办不可拆卸电池
在贵港港北那里招工,我是女生只想找白班
2500左右性价比高的电脑
求宜昌城镇个人建设住宅管理办法细则 关于住
如图,外半圆的周长是30.84厘米,内半圆的周
黑蜘蛛是怎么对话的,简单的介绍
纳雍哪里有学化妆美甲
win8玩游戏虚拟内存怎么设置最好
光猫电源器是12v1a,可以用12v3a吗?会不会烧
判断题参照物的选取是任意的,但也有一定的原
汽车方向打死转变前轮一拐一拐的是什么原因
无鳔的鲨鱼阅读答案
推荐资讯
小伢儿衣吧地址好找么,我有些事要过去,
德州市玉发农业机械回收拆解有限公司怎么样?
什么情况需要做透析
一、单选题 1、证券按其性质不同,可以分为
汉中市汉台区五乡镇邮编
冥顽不化是什么意思?
苏州普实软件有限公司待遇与工作环境怎么样?
从能量角度讲,为什么上山就比下山累呢?
现在入手nexus6还有必要么
在同一个wifi内 怎么搜别人的微信或者QQ
金线吊葫芦野生的种植功效有区别吗
橙色polo衫配什么颜色裤子 给推荐几款
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?