教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> 编程基地 >> SQL >> SQL全文检索例讲 RSS订阅
SQL全文检索例讲
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   

大家可能都会用
select * from tb where field like '%关键字%'
但是一旦数据量大用户多,就会造成查询过慢,因此MS提供一种牺牲空间来换取时间的解决方案。
全文检索。原文请看
http://www.microsoft.com/china/msdn/archives/library/dnsql2k/html/sql_fulltextsearch.asp
我对自己的实现加了些注释:

use  PopAsk
--使用这个库

exec sp_fulltext_database 'enable'
--使这个库允许全文检索


-----以下对Question_Total表操作------
/*
首先:要为全文检索目录起个名字,比如Q_ID_Desc
然后:要确保你这个表必须有个唯一主键,比如我这个Question_Total表,主键名是:PK_Question_Total
剩下就把要检索的列加进去就可以了。
*/
exec sp_fulltext_catalog 'Q_ID_Desc', 'create'
--创建名为Q_ID_Desc的全文检索目录,默认位置。

exec sp_fulltext_table 'Question_Total', 'create', 'Q_ID_Desc',  'PK_Question_Total'
-- 把Question_Total这个表,创建到全文检索目录中,指定主键。

exec sp_fulltext_column 'Question_Total', 'Title', 'add'
-- 把Question_Total这个表,要检索的Title列,添加到全文检索中。

exec sp_fulltext_column 'Question_Total', 'Content', 'add'
-- 把Question_Total这个表,要检索的Content列,添加到全文检索中。

exec sp_fulltext_table 'Question_Total', 'start_full'
-- 填充全文检索记录。

select FULLTEXTCATALOGPROPERTY('Q_ID_Desc', 'Populatestatus')
-- 这句可以不用,是检测是否添完状态的,1代表正在进行,0代表完成。

-----以下对另外一个表Answer_Total操作------
exec sp_fulltext_catalog 'A_ID_Desc', 'create'
--创建名为A_ID_Desc的全文检索目录,默认位置。

exec sp_fulltext_table 'Answer_Total', 'create', 'A_ID_Desc',  'PK_Answer_Total'
-- 把Question_Total这个表,创建到全文检索目录中,指定主键。


exec sp_fulltext_column 'Answer_Total', 'Answer_Content', 'add'
-- 把Answer_Total这个表,要检索的Answer_Content列,添加到全文检索中。

exec sp_fulltext_table 'Answer_Total', 'start_full'
-- 填充全文检索记录。

select FULLTEXTCATALOGPROPERTY('A_ID_Desc', 'Populatestatus')
-- 这句可以不用,是检测是否添完状态的,1代表正在进行,0代表完成。

/*
执行下列语句用于检索。
SELECT *
FROM FREETEXTTABLE(Question_Total, title, '测试')

SELECT *
FROM FREETEXTTABLE(Answer_Total, Answer_Content, '测试')
*/

躁声字文件

C:\Program Files\Microsoft SQL Server\MSSQL\FTDATA\SQLServer\Config\noise.chs

我参考别人的做法,只保留了一个?号。

还有数据库默认语言排序规则设置成Chinese_PRC_CI_AS

 

不要忘记建立一个作业,定时(一般可以每天)为全文检索添加记录。
exec sp_fulltext_table 'Answer_Total', 'start_full'
 
exec sp_fulltext_table 'Question_Total', 'start_full'
-- 填充全文检索记录。

 

来源:upschool.com.cn
作者:
关键字:MSSQL,全文检索,查询
发表日期:2007-1-8 11:23:18

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:邹键SQL通用分页存储过程   下一篇:SQL数据库的一些攻击


2008-12-4 7:19:04
本文的相类似文章
  • SQL全文检索例讲
  • 海量数据库的查询优化及分页算法方案
  • 查询Oracle各组件的版本信息
  • 将查询结果连接成列表的几个方法
  • oracle怎样在查询记录时给记录加锁
  • 如何对CLOB行字段执行全文检索
  • 如何正确利用Rownum来限制查询所返回的行数
  • 使用索引跳跃式扫描以提高查询速度
  • 返回指定行数之间的查询结果
  • 巧取指定的记录与巧用外关联查询
  • 在学习中进步 在进步中成长 教程中国相随您的成长之路
    华腾联合科技股份有限公司版权所有
    广告联系:Rosibo@163.com