MSSQL全文检索

MSSQL全文检索

--1.打开数据库
use pubs
go
--2.打开全文索引支持
--execute sp_fulltext_database 'enable'
/*
(所影响的行数为 1 行)
(所影响的行数为 0 行)
(所影响的行数为 1 行)
*/
--3.建立全文目录ft_test
--execute sp_fulltext_catalog 'ft_test','create'
/*
命令已成功完成。
*/
--4.为titles表建立全文索引数据元,UPKCL_titleidind为titles表中由主键所建立的唯一索引,此参数必须。
--execute sp_fulltext_table 'titles','create','ft_test','UPKCL_titleidind'
/*
(所影响的行数为 1 行)
(所影响的行数为 1 行)
*/
--5.设置全文索引列名
--execute sp_fulltext_column 'titles','title','add'
/*
(所影响的行数为 1 行)
(所影响的行数为 1 行)
(所影响的行数为 1 行)
(所影响的行数为 1 行)
*/
--execute sp_fulltext_column 'titles','notes','add'
/*
(所影响的行数为 1 行)
(所影响的行数为 1 行)
(所影响的行数为 1 行)
*/
--6.建立全文索引
--execute sp_fulltext_table 'titles','activate'
/*
命令已成功完成。
*/
--7.填充全文索引目录
--execute sp_fulltext_catalog 'ft_test','start_full'
/*
(所影响的行数为 0 行)
(所影响的行数为 1 行)
*/
--8.至此,全文索引建立完毕。
 
1-6.
打开pubs数据库,右键titles表,选择“全文索引表”,“在表上定义全文索引”,为其创建全文目录。在“全文索引向导”中,
选择你需要全文查询条件的列(可以是文本或图像),我们选择title和notes列。然后下一步,输入一个新的目录ft_test,点击下一步。在填充调度一项里,我们暂时不建立填充调度。接着“下一步”,全成全文索引向导。完成后,我们可以看到
在“全文目录”里,多了一个全文目录ft_test。右键ft_test属性,可以看到其状态、表、调度情况。
7.右键全文目录ft_test, “启动完全填充”,系统会出现“全文目录填充成功启动”。
8.至此,全文索引建立完毕。
--9.使用CONTAINS,
select *
from titles
where
contains(title,'software') --contains(title,'it')--"服务器: 消息 7619,级别 16,状态 1,行 1"--为什么?
or
contains(notes,'software')
--10.使用FREETEXT,
select * --使用*时说明对表中的所有全文索引列进行搜索
from titles
where
freetext(*,' Computers')
--freetext(*,' fuck')
--11.结束语:
--(1).优点:
--简单易用,可用企业管理器进行界面操作;
--功能强大,自动消除"噪音词";
--大数据表查询相对于"like"语句高效与现实性;
--(2).不足:
--数据添加和修改后,需手工"填充",或调度填充;
--对计算机硬件要求较高;
--需启动"Microsoft Search"服务;
--需启动"SQL Server Agent"服务(调度填充)
--"MSSQL/FTDATA"的磁盘空间占用
 
--部分摘自:
http://www.cnblogs.com/kirk003/articles/377721.html
部分摘自:
http://dev.csdn.net/develop/article/17/17137.shtm

--关于消息"7619":长话短说-忽略词,"你查的词被忽略了!"!
"noise.chs”文件,"查询子句只包含被忽略的词","……/Microsoft SQL Server/MSSQL/FTDATA/SQLServer/Config/noise.chs",

你可能感兴趣的:(MSSQL)