sql server 2000 的standard edition 和enterprise edition 版本提供了對錶資料中字串的複雜檢索功能---全文檢索(full-text searches)。此功能需要在安裝時通過自定義安裝選項來新增。
10.7.1 全文索引和目錄
全文檢索是通過使用全文索引(full-text index)來實現的。乙個全文索引中儲存了表的資料中有確切含義的字串以及其在表的列中的位置等資訊。全文檢索就是利用全文索引中的資訊查詢含有特定字串的資料行。
全文索引包含在全文索引目錄中(full-text catalogs),通常是由同一資料庫中的乙個或多個表的全文索引構成乙個全文索引目錄。乙個表只能有乙個全文索引,因此每個有全文索引的表只隸屬於乙個全文索引目錄。乙個資料庫可以包含乙個或多個全文索引目錄,但乙個全文索引目錄也只能隸屬於乙個資料庫。全文索引目錄和全文索引儘管是由sql server 來管理,但是並不存放在資料庫檔案中,而是與microsoft search 服務相關的作業系統檔案。
在使用全文索引查詢時,sql server 將檢索條件傳送給microsoft search 服務。microsoftsearch 服務將找出所有符合全文檢索條件的值,並將它們返送給sql server sql server就根據這些值來決定將處理表的哪些資料行。因此,必須啟動microsoft search 服務才能
使sql server 具有全文檢索的功能。
啟動microsoft search 服務的方法有兩種:
(1) 用enterprise manager 啟動
在enterprise manager 的support services 目錄樹資料夾中用右鍵單擊「full-textsearch」,從快捷選單中選擇「start」項,即可啟動。啟動後如圖10-1 所示。
(2) 用作業系統控制面板中的服務管理程式啟動
在win2000 server 和windows nt 確認中都可以從控制面板的「管理工具administrative tools」下的「服務」介面中右鍵單擊所要啟動的服務「microsoft search」,從快捷選單中選擇「啟動」選項,就會啟動microsoft search 服務,啟動後畫面如圖10-2所示。
10.7.2 建立全文索引目錄
在企業管理器中建立全文索引目錄的步驟如下:
(1) 在企業管理器的目錄樹中選擇要建立全文索引目錄的資料庫,將其展開,右鍵單擊「full-text catalogs」 物件從快捷選單中選取「new full-text catalogs」,則會出現如圖10-3 所示的新建全文索引目錄對話方塊。
(2) 在圖10-3 所示的對話方塊中輸入要建立的全文索引目錄名稱和檔案存放位置sqlserver 預設的存放目錄是「安裝目錄mssqlftdata」,在此目錄下將為每個全文索引目錄單獨建立乙個目錄,目錄名稱與圖10-3 中指定的名稱不同,是由系統生成的。單擊「schedules」 頁框,則會出現如圖10-4 所示的全文索引目錄計畫對話方塊。
(3) 在圖10-4 中可以建立、編輯全文索引目錄執行計畫。單擊「確定」按鈕,則建立全文索引目錄。
圖10-4 建立全文索引目錄計畫對話方塊
10.7.3 建立全文索引
建立全文索引的步驟如下:
(1) 在企業管理器中選擇要建立全文索引的資料庫,或表單擊右鍵,從快捷選單中選擇「new full-text indexes」, 則會出現如圖10-5 所示的全文索引建立嚮導介面。
(2) 單擊「下一步」按鈕,出現如圖10-6 所示的選擇要建立全文索引的表對話方塊。
(3) 單擊「下一步」按鈕,出現如圖10-7 所示的選擇表中的惟一索引對話方塊。
(4) 單擊「下一步」按鈕,出現如圖10-8 所示的選擇組成索引的列的對話方塊。
(5) 單擊「下一步」按鈕,出現如圖10-9 所示的選擇或新建全文索引目錄對話方塊。
(6) 單擊「下一步」按鈕,出現如圖10-10 所示的選擇或新建編輯全文索引目錄。執行計畫或表計畫對話方塊。單擊「new catalog schedule」 按鈕,則出現如圖10-11 所示的新建全文索引目錄執行計畫對話方塊。其它編輯、新建執行計畫對話方塊與此類似。
圖10-8 選擇組建全文索引的列的對話方塊
圖10-11 新建全文索引目錄執行計畫對話方塊
(7) 單擊「下一步」按鈕,出現如圖10-12 所示的結束全文索引建立嚮導對話方塊。單擊「完成」按鈕,則sql server 開始在後台執行程式,定義全文索引,程式完成後顯示如圖10-13 所示的定義全文索引成功對話方塊。此對話方塊告訴使用者全文索引已經定義,但是還沒有植入鍵值。
(8) 單擊「ok」 按鈕。在企業管理器中選取所建立的全文索引所在的全文索引目錄,單擊右鍵,從快捷選單中選取「start full population」 選項,完成全文索引的建立過程。
注意:全文索引與一般的索引不同,它不會隨著資料的更新而更新,因此必須經常或使用執行計畫去更新它,其更新會占用許多系統資源和時間。
圖10-13 定義全文索引成功對話方塊
10.7.4 全文檢索查詢
在乙個表中建立了全文索引後,才可以對錶中的資料進行全文檢索。進行全文檢索需
要在select 命令的where 字句中使用兩個transact-sql 謂詞:contains 和fr
etext。
(1) contains
contains 謂詞的語法如下
contains ( , '< contains_search_condition >' )
< contains_search_condition > ::=
| < contains_search_condition > [ ...n ]
}其含義是檢索列中包含有符合< contains_search_condition >檢索條件的資訊。其中
「column_name」 必須是包含在全文索引中的列,「*」 表示檢索條件應用到所有包含在全文索引中的列上。contains 謂詞的含義與like 謂詞相似,但contains 謂詞的功能更強大,支援更多的查詢方,式且對大小寫不敏感。
本章小結
本章的大部分內容都在講述select 語句的應用。精通select 語句等於攻克了sql語言的半壁江山。如果再能將下一章「資料庫更新」中的語句熟練運用,那麼就基本掌握了sql 語言。
MS SQL入門基礎 資料庫全文檢索
sql server 2000 的standard edition 和enterprise edition 版本提供了對錶資料中字串的複雜檢索功能 全文檢索 full text searches 此功能需要在安裝時通過自定義安裝選項來新增。10.7.1 全文索引和目錄 全文檢索是通過使用全文索引 f...
MS SQL入門基礎 資料庫索引
使用者對資料庫最頻繁的操作是進行資料查詢。一般情況下,資料庫在進行查詢操作時需要對整個表進行資料搜尋。當表中的資料很多時,搜尋資料就需要很長的時間,這就造成了伺服器的資源浪費。為了提高檢索資料的能力,資料庫引入了索引機制。本章將介紹索引的概念及其建立與管理。8.1.1 索引的概念 索引是乙個單獨的 ...
MS SQL入門基礎 移動資料庫
在sql server 中可以使用拆分 detach 和附加 attach 的方法來移動資料庫。拆分資料庫是從伺服器中移去邏輯資料庫,但不會將作業系統中的資料庫檔案刪除。附加資料庫將會建立乙個新的資料庫,並複製儲存在已有的資料庫檔案和事務日誌檔案中的資料。使用系統儲存過程sp detach db 來...