SQL SERVER全文检索的方法不少人都在问,下面就为您详细介绍SQL SERVER全文检索的实现方法,如果您对SQL SERVER全文检索方面感兴趣的话,不妨一看。
在本例中,对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
至此,全文索引建立完毕。
3.2 全文检索
SQL Server 2000提供的全文检索语句主要有CONTAINS和FREETEXT。CONTAINS语句的功能是在表所有列或指定列中搜索:
●一个字或短语;
●一个字或短语的前缀;
●与一个字相近的另一个字;
●一个字的派生字;
●一个重复出现的字。
CONTAINS语句的语法格式为:
CONTAINS({column *}),‘’) 其中,column说明被搜索列,使用时说明对表中所有全文索引列莲行搜索
Contains_ search_ condition说明CONTAINS语句的搜索内容,其语法格式为:
{||| |) [{|ANDIAND NOT|OR}}] [.n]
下面就simple_term和predix_term参数做一简要说明:
simple— term指出CONTAINS语句所搜索的单字或短语,当为一个短语时,必须使用双引号作为定界符。其格式为:
{word | “phrase”}
predix_term说明CONTAINS语句所搜索的字或短语前缀,其格式为:
{“word * ”| “phrase ”}
例如,下面语句检索b0ok表的title列和notes列中包含database或computer字符串的图书名称及其注释信息:
select title,notes from book
where contains(tilte,‘database’)or contains(notes,‘datable’)
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’)
【编辑推荐】