一、安装Sql Server 2000的全文检索
如果安装Sql Server 2000时,按缺省的典型安装,是不会安装全文检索的。要么在安装时,选自定义安装,然后将全文检索选项选上;如果没有安装此功能,重新运行安装程序,在“安装选择”时,选“对现有Sql Server 实例进行升级、添加或删除组件”,在“选择组件”时,要选择服务器组件中的全文检索子组件,完成安装即可。
存储过程'fulltextserviceproperty'可以验证搜索服务是否已经安装。在查询分析器中运行SELECT fulltextserviceproperty('IsFulltextInstalled'),返回值:1 = 已安装全文组件;0 = 未安装全文组件;NULL = 输入无效或发生错误。
二、如何建立全文检索
我们以在NorthWind数据库的Products表上建立全文检索为例:
步骤:
1、 打开NorthWind数据库,右键Products表,选择“全文索引表”,“在表上定义全文索引”,为其创建全文目录。在“全文索引向导”中,选择你需要全文查询条件的列(可以是文本或图像),我们选择Productname和QuantityPerUnit列。然后下一步,输入一个新的目录prodCatalog,点击下一步。在填充调度一项里,我们可以暂时不建立填充调度。接着“下一步”,完成全文索引向导。完成后,我们可以看到在NorthWind数据库的“全文目录”里,多了一个全文目录prodCatalog。右键prodCatalog属性,可以看到其状态、表、调度情况。
2、 右键全文目录proCatalog, “启动完全填充”,系统会出现“全文目录填充成功启动”。
三、使用Transact-SQL语言进行Sql Server 2000全文检索
这时,我们可以使用Transact-SQL进行全文检索了,我们使用CONTAINS、FREETEXT等谓词。如:下面的示例查找包含词"bottles"且价格为$15.00 的所有产品。
USE Northwind
GO
SELECT ProductName
FROM Products
WHERE UnitPrice = 15.00
AND Contains(*, 'bottles')
GO
下例搜索产品描述中含有与 bread、candy、dry 和 meat 相关的词语的所有产品类别,如 breads、candies、dried 和 meats 等。
USE Northwind
GO
SELECT CategoryName
FROM Categories
WHERE FREETEXT (Description, 'sweetest candy bread and dry meat' )
GO
这时,我们可以使用Transact-SQL进行全文检索了,我们使用CONTAINS、FREETEXT等谓词。如:下面的示例查找包含词"bottles"且价格为$15.00 的所有产品。
USE Northwind
GO
SELECT ProductName
FROM Products
WHERE UnitPrice = 15.00
AND Contains(*, 'bottles')
GO
下例搜索产品描述中含有与 bread、candy、dry 和 meat 相关的词语的所有产品类别,如 breads、candies、dried 和 meats 等。
USE Northwind
GO
SELECT CategoryName
FROM Categories
WHERE FREETEXT (Description, 'sweetest candy bread and dry meat' )
GO
1、 打开NorthWind数据库,右键Products表,选择“全文索引表”,“在表上定义全文索引”,为其创建全文目录。在“全文索引向导”中,选择你需要全文查询条件的列(可以是文本或图像),我们选择Productname和QuantityPerUnit列。然后下一步,输入一个新的目录prodCatalog,点击下一步。在填充调度一项里,我们可以暂时不建立填充调度。接着“下一步”,完成全文索引向导。完成后,我们可以看到在NorthWind数据库的“全文目录”里,多了一个全文目录prodCatalog。右键prodCatalog属性,可以看到其状态、表、调度情况。
2、 右键全文目录proCatalog, “启动完全填充”,系统会出现“全文目录填充成功启动”。
三、使用Transact-SQL语言进行Sql Server 2000全文检索
这时,我们可以使用Transact-SQL进行全文检索了,我们使用CONTAINS、FREETEXT等谓词。如:下面的示例查找包含词"bottles"且价格为$15.00 的所有产品。
USE Northwind
GO
SELECT ProductName
FROM Products
WHERE UnitPrice = 15.00
AND Contains(*, 'bottles')
GO
下例搜索产品描述中含有与 bread、candy、dry 和 meat 相关的词语的所有产品类别,如 breads、candies、dried 和 meats 等。
USE Northwind
GO
SELECT CategoryName
FROM Categories
WHERE FREETEXT (Description, 'sweetest candy bread and dry meat' )
GO
这时,我们可以使用Transact-SQL进行全文检索了,我们使用CONTAINS、FREETEXT等谓词。如:下面的示例查找包含词"bottles"且价格为$15.00 的所有产品。
USE Northwind
GO
SELECT ProductName
FROM Products
WHERE UnitPrice = 15.00
AND Contains(*, 'bottles')
GO
下例搜索产品描述中含有与 bread、candy、dry 和 meat 相关的词语的所有产品类别,如 breads、candies、dried 和 meats 等。
USE Northwind
GO
SELECT CategoryName
FROM Categories
WHERE FREETEXT (Description, 'sweetest candy bread and dry meat' )
GO