Share via


CREATE FULLTEXT CATALOG (Transact-SQL)

建立資料庫的全文檢索目錄。單一全文檢索目錄可以有多個全文檢索索引,但一個全文檢索索引只能屬於單一全文檢索目錄。每個資料庫都可以有零或多個全文檢索目錄。

您不能在 mastermodeltempdb 資料庫中建立全文檢索目錄。

主題連結圖示Transact-SQL 語法慣例

語法

CREATE FULLTEXT CATALOG catalog_name
     [ON FILEGROUP filegroup ]
     [IN PATH 'rootpath']
     [WITH <catalog_option>]
     [AS DEFAULT]
     [AUTHORIZATION owner_name ]

<catalog_option>::=
     ACCENT_SENSITIVITY = {ON|OFF}

引數

  • catalog_name
    這是新目錄的名稱。在目前資料庫的所有目錄名稱之間,目錄名稱必須是唯一的。另外,在資料庫的所有檔案之間,對應於全文檢索目錄的檔案名稱 (請參閱 ON FILEGROUP) 也必須是唯一的。如果資料庫中已有另一個目錄在只用這個目錄名稱,SQL Server 會傳回錯誤。

    目錄名稱的長度不能超出 120 個字元。

  • ON FILEGROUP 'filegroup'
    這是新目錄所屬 SQL Server 檔案群組的名稱。如果未指定檔案群組,新目錄就屬於供所有全文檢索目錄使用的預設檔案群組。預設全文檢索檔案群組是資料庫的主要檔案群組。建議您將全文檢索目錄放在次要檔案群組中。這可讓您執行全文檢索目錄的檔案群組備份和還原作業,而不會影響資料和記錄檔。此外,將全文檢索目錄放在次要檔案群組也可以讓您還原線上全文檢索目錄。

    建立全文檢索目錄的檔案群組,至少必須有一個可存取的資料檔,供全文檢索目錄中的內部結構使用。這個檔案儲存在 SQL Server 中,不能標示為 OFFLINE 或 READONLY。

    檔案群組中的目錄會當作檔案來處理,並且由 sys.master_files 中的路徑來指出目錄的實體位置。針對每個全文檢索目錄而建立的檔案,其名稱是 sysft_ 和目錄名稱的組合。例如,如果目錄名稱是 catname,對應於這個目錄的檔案名稱便是 sysft_catname

  • IN PATH 'rootpath'
    這是目錄的根目錄。如果未指定 rootpath,新目錄會在設定時所指定的預設目錄中。

    全文檢索目錄必須建立在 SQL Server 執行個體所關聯的本機硬碟中。rootpath 不能是相對路徑;它必須在相同電腦的磁碟機中。雖然您可以指定磁碟機的根目錄 (如 'C:\') 來作為全文檢索目錄的位置,但不建議您這麼做。網路磁碟機、抽取式磁碟機、磁碟片及通用命名慣例 (UNC) 路徑都不在支援範圍內。在容錯移轉叢集環境中,這個路徑必須在 SQL Server 資源所依賴的共用磁碟中。

    如果現有的全文檢索目錄名稱指定了不正確的路徑,SQL Server 會傳回錯誤,且不會建立全文檢索目錄。如果指定的 rootpath 不存在,SQL Server 會傳回一則指出路徑不存在的錯誤。

    若要使全文檢索目錄能夠進行差異備份、還原和復原,您必須將全文檢索目錄儲存在 NTFS 檔案系統內的目錄中。不是 NTFS 的檔案系統不支援差異備份、還原和復原。

    全文檢索目錄會建立成指定之根路徑中的目錄;目錄名稱便是全文檢索目錄的名稱。如果已有這個全文檢索目錄的同名目錄存在,目錄名稱會附加後置詞,且會利用這個名稱來建立新目錄。

    請勿在磁碟機的根目錄 (如 c:\) 中建立全文檢索目錄。

  • ACCENT_SENSITIVITY = {ON|OFF}
    指定全文檢索索引的目錄是否區分腔調字。當這個屬性有了改變時,您必須重建索引。預設值是使用資料庫定序所指定的區分腔調字屬性。若要顯示資料庫定序,請使用 sys.databases 目錄檢視。

    若要判斷全文檢索目錄目前的區分腔調字屬性設定,請針對 catalog_name,搭配 accentsensitivity 屬性值來使用 FULLTEXTCATALOGPROPERTY 函數。如果傳回的值是 '1',全文檢索目錄就會區分腔調字;如果傳回的值是 '0',目錄就不會區分腔調字。

  • AS DEFAULT
    指定這個全文檢索目錄是預設目錄。當建立全文檢索索引,卻沒有明確指定全文檢索目錄時,便使用預設目錄。如果現有的全文檢索目錄已標示了 AS DEFAULT,將這個新目錄設成 AS DEFAULT,會使這個目錄成為預設的全文檢索目錄。
  • AUTHORIZATION owner_name
    將全文檢索目錄的擁有者設為資料庫使用者或角色的名稱。如果 owner_name 是某個角色,則這個角色必須是目前使用者所屬成員的角色名稱,否則,執行陳述式的使用者必須是資料庫擁有者或系統管理員。

    如果 owner_name 是某個使用者名稱,這個使用者名稱必須是下列項目之一:

    • 執行陳述式的使用者名稱。
    • 執行命令的使用者有其模擬權限的使用者名稱。
    • 或者,執行命令的使用者必須是資料庫擁有者或系統管理員。

    owner_name 也必須取得指定的全文檢索目錄之 TAKE OWNERSHIP 權限。

權限

使用者必須具有資料庫的 CREATE FULLTEXT CATALOG 權限,或是 db_ownerdb_ddladmin 固定資料庫角色的成員。

範例

下列範例會建立全文檢索目錄和全文檢索索引。

USE AdventureWorks;
GO
CREATE FULLTEXT CATALOG ftCatalog AS DEFAULT;
GO
CREATE FULLTEXT INDEX ON HumanResources.JobCandidate(Resume) KEY INDEX PK_JobCandidate_JobCandidateID;
GO

請參閱

參考

ALTER FULLTEXT CATALOG (Transact-SQL)
DROP FULLTEXT CATALOG (Transact-SQL)

其他資源

全文檢索搜尋
新增全文檢索目錄 (一般頁面)

說明及資訊

取得 SQL Server 2005 協助