【正文】
ULLTEXT CATALOG catalog_name[ON FILEGROUP filegroup ][IN PATH 39。rootpath39。][WITH catalog_option][AS DEFAULT][AUTHORIZATION owner_name ]catalog_option::=ACCENT_SENSITIVITY = {ON|OFF}其中參數(shù)說明如下:l catalog_name:全文目錄名稱。l ON FILEGROUP filegroup:包含全文目錄的文件組名。l IN PATH 39。rootpath39。:全文目錄的路徑。l AS DEFAULT :指定該全文目錄為默認目錄。l AUTHORIZATION owner_name:將全文目錄的所有者設為數(shù)據(jù)庫用戶名或角色的名稱。l ACCENT_SENSITIVITY:設置該全文目錄的全文索引是否區(qū)分重音。例十三、在Northwind 數(shù)據(jù)庫中創(chuàng)建一個名為“TSQL 全文目錄”全文目錄,其代碼如下:CREATE FULLTEXT CATALOG TSQL 全文目錄ON FILEGROUP [PRIMARY]IN PATH 39。E:\book\SQL Server 2005 大全\數(shù)據(jù)庫\第十四章\運行后數(shù)據(jù)庫39。AS DEFAULT更改全文目錄屬性創(chuàng)建完全文目錄之后,如果發(fā)現(xiàn)其設置有不如意之處,可以用TSQL 語句對其進行修改。更改全文目錄屬性的TSQL 語句代碼如下:ALTER FULLTEXT CATALOG catalog_name{ REBUILD [ WITH ACCENT_SENSITIVITY = { ON | OFF } ]| REORGANIZE| AS DEFAULT}其中參數(shù)說明如下:l catalog_name:全文目錄名稱l REBUILD:重新生成全文目錄。l WITH ACCENT_SENSITIVITY :設置該全文目錄的全文索引是否區(qū)分重音。l REORGANIZE:執(zhí)行主合并索引以便將在索引過程中創(chuàng)建的各個較小的索引合并成一個大索引。l AS DEFAULT :指定該全文目錄為默認目錄。例十四、重新生成“TSQL 全文目錄”,其代碼如下:ALTER FULLTEXT CATALOG TSQL 全文目錄REBUILD創(chuàng)建全文索引有了全文目錄后,可以在全文目錄里創(chuàng)建全文索引。一個全文目錄里可以包含多個全文索引,但一個全文索引只能屬于一個全文目錄。每個數(shù)據(jù)表只能有一個全文索引。創(chuàng)建全文索引的TSQL 語句代碼如下:CREATE FULLTEXT INDEX ON table_name[(column_name [TYPE COLUMN type_column_name][LANGUAGE language_term] [,...n])]KEY INDEX index_name[ON fullt ext_catalog_name][WITH{CHANGE_TRACKING {MANUAL | AUTO | OFF [, NO POPULATION]}}]其中參數(shù)說明如下:l table_name:數(shù)據(jù)表名。l column_name:全文索引中包括的一列或多列的名稱。只能對類型為char、varchar、nchar、nvarchar、text、ntext、image、xml 和varbinary 的列進行全文索引。l TYPE COLUMN type_column_name:用于存儲column_name 的文檔類型的數(shù)據(jù)表中的列名。l LANGUAGE language_term:存儲在column_name 中的數(shù)據(jù)所用的語言。l KEY INDEX index_name:數(shù)據(jù)表中唯一鍵索引的字段名。l ON fullt ext_catalog_name:全文目錄名。l MANUAL :指定是使用SQL Server 代理還是手動傳播跟蹤日志。l AUTO:當關聯(lián)的數(shù)據(jù)表中修改了數(shù)據(jù)時,SQL Server 自動更新全文索引。l OFF[,NO POPULATION]:不保留對索引數(shù)據(jù)的更改列表。例十五、為“文章”表的“標題”、“內(nèi)容”和“文件”三個字段創(chuàng)建全文索引,其代碼如下:CREATE FULLTEXT INDEXON 文章(標題,內(nèi)容,文件TYPE COLUMN 擴展名)KEY INDEX PK_文章ON TSQL 全文目錄注意:由于在前面的章節(jié)里已經(jīng)為“文章”表創(chuàng)建了全文索引,因此在運行本例之前要先把原來創(chuàng)建的全文索引刪除。更改全文索引屬性創(chuàng)建完全文索引之后,如果發(fā)現(xiàn)其設置有不如意之處,可以用TSQL 語句對其進行修改。更改全文索引屬性的TSQL 語句代碼如下: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}其中一些參數(shù)說明如下:l table_name:數(shù)據(jù)表名。l ENABLE | DISABLE:啟用或禁用全文索引。l MANUAL :指定是使用SQL Server 代理還是手動傳播跟蹤日志。l AUTO:當關聯(lián)的數(shù)據(jù)表中修改了數(shù)據(jù)時,SQL Server 自動更新全文索引。l OFF:不保留對索引數(shù)據(jù)的更改列表。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刪除全文索引刪除全文索引的TSQL 的語法代碼比較簡單,如下所示:DROP FULLTEXT INDEX ON table_name例二十、刪除“文章”表里的全文索引,其代碼如下:DROP FULLTEXT INDEX ON 文章刪除全文目錄刪除全文目錄的TSQL 的語法代碼比較簡單,如下所示:DROP FULLTEXT CATALOG catalog_name例二十一、刪除“文章”表里的全文索引,其代碼如下:DROP FULLTEXT CATALOG TSQL 全文目錄注意:要刪除全文目錄必須為空,即不能包含有全文索引。小結(jié)使用全文搜索可以快速、靈活地為存儲在數(shù)據(jù)庫中的文本數(shù)據(jù)的基于關鍵字的查詢創(chuàng)建索引。與僅適用于字符模式的LIKE 謂詞不同,全文查詢將根據(jù)特定語言的規(guī)則對詞和短語進行操作,從而針對此數(shù)據(jù)執(zhí)行語言搜索。全文索引是由SQL Server FullText Search 服務來維護的,必須選啟動該服務才能使用全文索引。填充全文索引有三種方式:完全填充、增量填充和更改跟蹤。在全文索引中概念與術語比較多,如全文索引、全文目錄、斷字符、詞干分析器、標記、篩選器、填充、干擾詞等。了解怎么創(chuàng)建全文目錄,怎么創(chuàng)建全文索引,怎么進行全文索引的填充,怎么使用調(diào)度讓全文索引自動填充。使用CONTAINS、FREETEXT 兩個謂詞和CONTAINSTABLE、FREETEXTTABLE 兩個行集值函數(shù)可以用來進行全文搜索,其中CONTAINS 和FREETEXT 用在WHERE 子句中,CONTAINSTABLE 和FREETEXTTABLE 用在FROM 子句中。CONTAINS 搜索有簡單詞、派生詞、前綴詞、加權(quán)詞和鄰近詞五種搜索方式。FREETEXT 只有一種搜索方式,但是其將一個句子中的每個單字拆分開進行搜索。SQL Server 2005 可以對存儲在image 類型字段里的文件進行全文搜索。其搜索的前提是必須要有一個字段指明image 類型字段里存儲的文件是什么類型。當為image 類型字段設置好全文索引后,可以像其他字段一樣地進行全文搜索。__