全文本检索的应用(1)

发表于:2007-06-30来源:作者:点击数: 标签:
基本知识 1. SQL Server7 的 DeskTop 版中没有全文本检索。 2. 一个表只能有一个全文本检索。 3. 被检索的表必须有单列的唯一索引。 4. 全文本的索引存储在文件系统中,而非 数据库 中。 5. 更新全文本索引的过程比常规索引要耗时,而且也不象常规索引那样可
基本知识
1. SQL Server7 的 DeskTop 版中没有全文本检索。
2. 一个表只能有一个全文本检索。
3. 被检索的表必须有单列的唯一索引。
4. 全文本的索引存储在文件系统中,而非数据库中。
5. 更新全文本索引的过程比常规索引要耗时,而且也不象常规索引那样可以由数据库系统立即更新。
6. 全文本索引包含在全文本目录( Full-Text Catalog )中,每个数据库可以包含一个或多个目录,但一个目录不能属于多个数据库。
7. 全文本检索只能在真正的表上创建,不能是视图,系统表,临时表。
8. 全文本检索会忽略某些噪音字( noise words),比如英文的 a,the,and,中文的@#和@#,@#是@#等等。
9. 如果在查询中包含 noise words ,就会引发错误,在应用程序中应去除这些 noise words。

启动全文本检索服务。
方法A:在企业管理器中打开 Support Services 文件夹,在 Full-Text Search 的右键菜单中选择 Start。
方法B:在 SQL Server Service Manager 的 Services 下拉列表中选择 Microsoft Search,并单击 Start/Continue 按钮。
方法C:使用.net start mssearch 的命令行方式。
使用全文本检索向导( Full-Text Indexing Wizard )。
step1. 选择被检索的数据库,在 Tools 的菜单中,选择 Full-text Indexing,进入欢迎( Welcome )的屏幕,单击 next。
step2. 选择被检索的表,单击 next。
step3. 选择唯一索引,单击 next。
step4. 选择被索引的列,单击 Add,该列显示在右栏中。单击 next。
step5. 选择目录(选择已存在的目录,或创建新的目录),单击 next。
step6. 选择或创建 population schedule(可选项),单击 next。
step7. 单击 finish。
使用 SQL-DMO (以 VB 为例)
step1. 在工程的引用中选择 Microsoft SQLDMO Object Library。
step2. 创建 SQLServer 对象。
Dim objSQL As New SQLDMO.SQLServer
objSQL.Connect "localhost", "sa", ""
step3. 创建新的目录,并加入到被索引的数据库目录中。
Dim objCatalog As New SQLDMO.FullTextCatalog
@#使 pubs 为全文本检索的数据库
objSQL.Databases("pubs").EnableFullTextCatalogs
@#创建新的目录
objCatalog.Name = "ftcPubsTest"
@#将新目录加入到目录集合中
objSQL.Databases("pubs").FullTextCatalogs.Add objCatalog
step4. 在表上创建全文本索引。
Dim objTable As New SQLDMO.Table
@#指定被索引的表
Set objTable = objSQL.Databases("pubs").Tables("authors")
@#指定目录名和唯一索引名
objTable.FullTextCatalogName = "ftcPubsTest"
objTable.UniqueIndexForFullText = "UPKCL_auidind"
objTable.FullTextIndex = True

@#指定被索引的列
objTable.Columns("au_lname").FullTextIndex = True
objTable.Columns("au_fname").FullTextIndex = True

@#激活该表上的全文本索引
objTable.FullTextIndexActive = True

step5. 启动全文本目录
objCatalog.Start SQLDMOFullText_Full
使用存储过程
step1. 使 pubs 为全文本检索的数据库
USE Pubs
go
sp_fulltext_database @#enable@#

step2. 创建新的目录
sp_fulltext_catalog @#ftcPubsTest@#,@#create@#
step3. 指定被索引的表
sp_fulltext_table @#authors@#,@#create@#,@#ftcPubsTest@#,@#UPKCL_auidind@#
step4. 指定被索引的列
sp_fulltext_column @#authors@#,@#au_lname@#,@#add@#
sp_fulltext_column @#authors@#,@#au_fname@#,@#add@#
step5. 激活该表上的全文本索引
sp_fulltext_table @#authors@#,@#activate@#
step6. 启动全文本目录
sp_fulltext_catalog @#ftcPubsTest@#,@#start_full@#

原文转自:http://www.ltesting.net