SQL Server2000全文索引心得
试想,如果你开了家药铺,第一年在纸上写下1,2,3,4,5号抽屉放黄胆.9,52,7号抽屉中放灵芝,47,25,36,87号抽屉中放天麻............有一天你急要找天麻,于是,47,25,36,87号抽屉逐个找,费时,费力.
第二年,你老婆在纸上写下:黄胆:1,2,3,4,5号抽屉.天麻:9,52,7号抽屉.灵芝:47,25,36,87号抽屉.有一天,她急要找灵芝,但,没用几分钟,就找到了!
那么,第一种情况是什么呢?对!就是我们经常用到的;LIKE索引!第二种情况就是本文要向你介绍的:全文索引!
LIKE索引:LIKE谓词用于指出一个字符串是否与指定的字符中相匹配.
全文索引:就是事先做好相关的索引,表示哪个主题词可以在哪些记录里找到,甚至事先计算好RANK,检索时可以把相关度高的先列出来,这可以大大提高检索的速度。
那么,在SQL 2K中怎么建全文索引呢?
例子:
1、 打开NorthWind数据库,右键Products表,选择“全文索引表”,“在表上定义全文索引”,为其创建全文目录。在“全文索引向导”中,选择你需要全文查询条件的列(可以是文本或图像),我们选择Productname和QuantityPerUnit列。然后下一步,输入一个新的目录p,点击下一步。在填充调度一项里,我们暂时不建立填充调度。接着“下一步”,全成全文索引向导。完成后,我们可以看到在“全文目录”里,多了一个全文目录p。右键p属性,可以看到其状态、表、调度情况。
2、 右键全文目录p, “启动完全填充”,系统会出现“全文目录填充成功启动”。
3、 这时,我们可以使用Transact-SQL进行全文检索了,我们使用CONTAINS、FREETEXT等谓词。如:
检索ProductName中,即包含d又包含e的所有列
SELECT *
FROM Products
WHERE CONTAINS(ProductName, '"d*" and "e*" ')