更改全文索引属性
创建完全文索引之后,如果发现其设置有不如意之处,可以用T-SQL语句对其进行修改。更改全文索引属性的T-SQL语句代码如下:
ALTER FULLTEXT INDEX ON table_name
{ ENABLE
| DISABLE
| SET CHANGE_TRACKING { MANUAL | AUTO | OFF }
| ADD ( column_name
[ TYPE COLUMN type_column_name ]
[ LANGUAGE language_term ] [,...n] )
[ WITH NO POPULATION ]
| DROP ( column_name [,...n] )
[WITH NO POPULATION ]
| START { FULL | INCREMENTAL | UPDATE } POPULATION
| STOP POPULATION
}
其中一些参数说明如下:
l table_name:数据表名。
l ENABLE | DISABLE:启用或禁用全文索引。
l MANUAL:指定是使用SQL Server代理还是手动传播跟踪日志。
l AUTO:当关联的数据表中修改了数据时,SQL Server自动更新全文索引。
l OFF:不保留对索引数据的更改列表。
l ADD:指定在全文索引中添加列。
l WITH NO POPULATION:指定添加过删除全文索引列之后不填充全文索引。
l DROP:指定在全文索引中删除列。
l START……POPULATION:开始填充全文索引。
l FULL:指定填充所有全文索引。
l INCREMENTAL:指定对上次填充以来修改过的行进行填充。
l UPDATE :指定对自上次更新更改跟踪索引以来的所有插入、更新或删除进行处理。
l STOP POPULATION:停止正在进行的填充。
例十六、禁用“文章”表的全文索引,其代码如下:
ALTER FULLTEXT INDEX ON 文章
DISABLE
例十七、启用“文章”表的全文索引,其代码如下:
ALTER FULLTEXT INDEX ON 文章
ENABLE
例十八、将“文章”表里的“文件”字段从全文索引里删除,其代码如下:
ALTER FULLTEXT INDEX ON 文章
DROP (文件)
例十九、填充“文章”表的全文索引,其代码如下:
ALTER FULLTEXT INDEX ON 文章
START FULL POPULATION
删除全文索引
删除全文索引的T-SQL的语法代码比较简单,如下所示:
DROP FULLTEXT INDEX ON table_name
例二十、删除“文章”表里的全文索引,其代码如下:
DROP FULLTEXT INDEX ON 文章
删除全文目录
删除全文目录的T-SQL的语法代码比较简单,如下所示:
DROP FULLTEXT CATALOG catalog_name
例二十一、删除“文章”表里的全文索引,其代码如下:
DROP FULLTEXT CATALOG TSQL全文目录
注意:要删除全文目录必须为空,即不能包含有全文索引。
小结
使用全文搜索可以快速、灵活地为存储在数据库中的文本数据的基于关键字的查询创建索引。与仅适用于字符模式的LIKE谓词不同,全文查询将根据特定语言的规则对词和短语进行操作,从而针对此数据执行语言搜索。
全文索引是由SQL Server FullText Search服务来维护的,必须选启动该服务才能使用全文索引。填充全文索引有三种方式:完全填充、增量填充和更改跟踪。
在全文索引中概念与术语比较多,如全文索引、全文目录、断字符、词干分析器、标记、筛选器、填充、干扰词等。了解怎么创建全文目录,怎么创建全文索引,怎么进行全文索引的填充,怎么使用调度让全文索引自动填充。
使用CONTAINS、FREETEXT两个谓词和CONTAINSTABLE、FREETEXTTABLE两个行集值函数可以用来进行全文搜索,其中CONTAINS和FREETEXT用在WHERE子句中,CONTAINSTABLE和FREETEXTTABLE用在FROM子句中。CONTAINS搜索有简单词、派生词、前缀词、加权词和邻近词五种搜索方式。FREETEXT只有一种搜索方式,但是其将一个句子中的每个单字拆分开进行搜索。
SQL Server 2005可以对存储在image类型字段里的文件进行全文搜索。其搜索的前提是必须要有一个字段指明image类型字段里存储的文件是什么类型。当为image类型字段设置好全文索引后,可以像其他字段一样地进行全文搜索。