天天看點

使用sql server中的全文索引

<b>使用sql server中的全文索引</b>

http://www.51cto.com  2005-12-23 09:08  作者:  出處:賽迪網

一般情況,使用sql server中的全文索引,經過大體4個步驟:

1).安裝full text search全文索引服務;

2).為資料表建立full text catalog全文索引目錄;

3).進行full text catalog的population操作(使全文索引與資料表内容同步);

4).使用全文索引進行查詢。

為了在資料表内容更新時全文索引資料庫的内容也保持最新,可以通過第5步建立full text catalog 的Population自動操作Schedule. 

1.sql server 預設不安裝full text search service,需要安裝時選擇裝上才可以使用。如果安裝了 full text search service,那麼Sql Server Enterprise manager(企業管理器)中,展開一個資料庫,會有一個Full Text Catalogs;選中一個資料庫,右鍵菜單的“建立“中有一個New Full Text CataLog.并且選中任意一個表格,點右鍵,會有一個Full-text Index Table(全文索引表)的菜單可以使用。如果 full text search service沒有安裝,那麼這個菜單是灰色的。 

2.為表建立 full text catalog.假設資料庫CoreDB中有一個表myBBS,這個表存儲的是一個論壇所有文章的ID,标題(title),作者 (author),内容(content)等。我們選中表myBBS,點右鍵,New Full Text Catalog,選擇content作為全文索引的字段,建立新的Full Text Catalog,取名為content. 

3.到這個時候,隻是建立了 full text catalog,并不能使用全文索引。需要使全文目錄中的内容與資料庫索引表的内容相一緻,這一步通過 Full Population或Incremental Population來實作:企業管理器中展開資料庫CoreDB,輕按兩下Full- Text Catalog,會看到有一個名為content的全文目錄,選中右擊,點Start Full Population或 Start Incremental Population,此時即可使用索引功能。 

4.使用索引功能:

select * from mybbs where Contains(content,’"windows"’);

此語句在mybbs表的全文索引content中,查詢含有windows字元串的記錄。

5. 以後資料庫中的索引表有更新時,都需要進行Population同步操作,全文查詢的内容才是新的資料表中的内容。是以我們可以設定sql server 自動進行Population操作:右擊名為content的full text catalog,Schedules, New Catalog Schedules,輸入名字,選中Enabled選項,可以設定計劃任務的執行頻率,可設定每次啟動 SQL server agent的時候啟動,也可以設定執行一次,或者設定重複執行,重複執行裡面可以設定執行頻率為月,周,日,可以設定每天若幹小時執行一次。(這樣隻要Service裡面啟動了sql server agent,population同步計劃都會自動執行)

總結一下,通過安裝全文索引服務,建立資料表的全文索引目錄,同步全文索引資料庫之後,即可開始使用全文索引查詢。可通過建立full text catalog的自動population schedule來自動同步索引資料庫。