全文本检索的应用

基本知识
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

时间: 2024-09-18 12:58:07

全文本检索的应用的相关文章

全文本检索的应用(1)

    基本知识1. SQL Server7 的 DeskTop 版中没有全文本检索.2. 一个表只能有一个全文本检索.3. 被检索的表必须有单列的唯一索引.4. 全文本的索引存储在文件系统中,而非数据库中.5. 更新全文本索引的过程比常规索引要耗时,而且也不象常规索引那样可以由数据库系统立即更新.6. 全文本索引包含在全文本目录( Full-Text Catalog )中,每个数据库可以包含一个或多个目录,但一个目录不能属于多个数据库.7. 全文本检索只能在真正的表上创建,不能是视图,系统表,

全文本检索的应用(2)

CONTAINS 语法我们通常在 WHERE 子句中使用 CONTAINS ,就象这样:SELECT * FROM table_name WHERE CONTAINS(fullText_column,'search contents'). 我们通过例子来学习,假设有表 students,其中的 address 是全文本检索的列.1. 查询住址在北京的学生SELECT student_id,student_nameFROM studentsWHERE CONTAINS( address, 'bei

全文本检索的应用(3)

CONTAINSTABLE 语法我们通常在 FROM 子句中使用 CONTAINSTABLE ,就象这样:SELECT * FROM table_name,CONTAINTABLE(fulltext_table,fullText_column,'search condition') WHERE ....... CONTAINSTABLE 在查询方式上与 CONTAINS 几乎一样,所以就不用赘述了.CONTAINSTABLE 返回的是符合查询条件的表,在 SQL 语句中我们可以把它当作一个普通的

全文本检索的应用(二)

CONTAINS 语法我们通常在 WHERE 子句中使用 CONTAINS ,就象这样:SELECT * FROM table_name WHERE CONTAINS(fullText_column,'search contents').我们通过例子来学习,假设有表 students,其中的 address 是全文本检索的列.1. 查询住址在北京的学生SELECT student_id,student_nameFROM studentsWHERE CONTAINS( address, 'beij

全文本检索的应用(三)

CONTAINSTABLE 语法我们通常在 FROM 子句中使用 CONTAINSTABLE ,就象这样:SELECT * FROM table_name,CONTAINTABLE(fulltext_table,fullText_column,'search condition') WHERE .......CONTAINSTABLE 在查询方式上与 CONTAINS 几乎一样,所以就不用赘述了.CONTAINSTABLE 返回的是符合查询条件的表,在 SQL 语句中我们可以把它当作一个普通的表

CONTAINS 语法

CONTAINSTABLE 语法我们通常在 FROM 子句中使用 CONTAINSTABLE ,就象这样:SELECT * FROM table_name,CONTAINTABLE(fulltext_table,fullText_column,'search condition') WHERE ....... CONTAINSTABLE 在查询方式上与 CONTAINS 几乎一样,所以就不用赘述了.CONTAINSTABLE 返回的是符合查询条件的表,在 SQL 语句中我们可以把它当作一个普通的

like 和 contains 和match() against()

Like直接在数据据中查找可以查到所有所需记录但是会扫描整个表会影响性能, CONTAINS是基于全文索引 进行查询,查询结果受系统全文索引分词的方法影响查询结果会不全. Select * FROM A Where CONTAINS(B,'"IT"Or"理论"')5257条记录 Select * FROM A Where B Like'%IT%' or B LIKE '%理论%' 5468条记录 结论:需要精确查询用Like如产品搜索,内容搜索可以用CONTAINS

SQL Server 2005你了解多少?

 很多人关心的和担心的都是SQL Server 2005 相对它的前版本SQL Server 2000所做的重大改进或新增功能. 在我升级到SQL2005之后,不得不说的:你也值得拥有.(套用一句广告语,呵呵) 我总结了一下个人认为SQL Server 2005 中最值得你为之升级的10 个理由.无论你是想了解或学习SQL Server 2005,还是正在评估或考虑升级到SQL Server 2005,我相信当时你看完这篇帖子一定会对你的决定起到参考作用. 升级理由一:数据分区 只有到了2005

外行不在只看热闹-揭秘外行人士所不知道的OA

问题描述 原文出自:http://www.winfreeinfo.com/vnews260.html转载请注明出处俗话说,内行看门道外行看热闹,在日新月异信息化行业更是如此,在OA行业格外明显.外行人士(即用户)在选型时,往往是被内行(即系统厂商)牵着鼻子走,OA是个大杂烩,其业务边界没有像其他信息系统那样清晰,且没有标准,不同的企业类型,不同的业务需求.如何满足纷繁变化的管理需求?如何在这种无标准的市场中,用一套标准化的方案解决企业各有不同的业务需求?以上现状是我们在企业走访调研时候都会遇到的