首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 全文索引實戰:以 Pubs 資料庫為例的完整建立流程

     編輯:關於SqlServer

本文以經典 `pubs` 資料庫為例,示範使用系統預存程序建立全文索引的完整步驟,並說明各階段的關鍵指令與驗證方式。

六大建立步驟總覽

  1. 啟用資料庫全文處理功能:`sp_fulltext_database`
  2. 建立全文目錄:`sp_fulltext_catalog`
  3. 註冊需全文索引的資料表:`sp_fulltext_table`
  4. 指定索引欄位:`sp_fulltext_column`
  5. 啟用資料表全文檢索能力:`sp_fulltext_table ... 'activate'`
  6. 填充全文目錄:`sp_fulltext_catalog ... 'start_full'`

完整 T-SQL 範例

USE pubs;
GO

-- 1. 啟用全文功能(若未啟用)
IF (SELECT DATABASEPROPERTY('pubs', 'IsFulltextEnabled')) = 0
    EXEC sp_fulltext_database 'enable';

-- 2. 建立全文目錄
EXEC sp_fulltext_catalog 'FT_pubs', 'create';

-- 3. 為 title 表建立全文索引(需唯一索引 UPKCL_titleidind)
EXEC sp_fulltext_table 'title', 'create', 'FT_pubs', 'UPKCL_titleidind';

-- 4. 加入索引欄位
EXEC sp_fulltext_column 'title', 'title', 'add';
EXEC sp_fulltext_column 'title', 'notes', 'add';  -- 注意:原文此處誤寫為 notes 表,實為 title 表的 notes 欄位

-- 5. 啟用全文檢索
EXEC sp_fulltext_table 'title', 'activate';

-- 6. 完全填充目錄
EXEC sp_fulltext_catalog 'FT_pubs', 'start_full';
GO

-- 等待填充完成
WHILE FULLTEXTCATALOGPROPERTY('FT_pubs', 'PopulateStatus') <> 0
BEGIN
    WAITFOR DELAY '00:00:30';
END

-- 7. 使用全文查詢
SELECT title
FROM title
WHERE CONTAINS(title, 'database')
   OR CONTAINS(title, 'computer')
   OR CONTAINS(notes, 'database')
   OR CONTAINS(notes, 'computer');

全文操作相關系統預存程序

程序名稱執行權限功能描述
sp_fulltext_serviceserveradmin / 系統管理員設定全文搜尋屬性(斷詞器、同義字典等)
sp_fulltext_catalogdb_owner 及以上建立/刪除全文目錄、啟動/停止索引作業
sp_fulltext_databasedb_owner初始化全文索引或刪除資料庫所有全文目錄
sp_fulltext_tabledb_ddladmin / db_owner標識資料表為全文索引表或移除
sp_fulltext_columndb_ddladmin指定全文索引表的欄位加入/移出索引

前置需求

  • 安裝 Microsoft Search Service(全文搜尋服務)。
  • 啟動 SQL Server Full-Text Search 服務(MSSQLFDLauncher)。
  • 資料表必須擁有唯一、非空、單欄位的索引(主鍵即可)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved