1.打開NorthWind數據庫,右鍵Products表,選擇“全文索引表”,“在表上定義全文索引”,為其創建全文目錄。在“全文索引向導”中,選擇你需要全文查詢條件的列(可以是文本或圖像),我們選擇Productname和QuantityPerUnit列。然後下一步,輸入一個新的目錄proCatalog,點擊下一步。在填充調度一項裡,我們暫時不建立填充調度。接著“下一步”,全成全文索引向導。完成後,我們可以看到在“全文目錄”裡,多了一個全文目錄proCatalog。右鍵proCatalog屬性,可以看到其狀態、表、調度情況。
2.右鍵全文目錄proCatalog, “啟動完全填充”,系統會出現“全文目錄填充成功啟動”。
3.這時,我們可以使用Transact-SQL進行全文檢索了,我們使用CONTAINS、FREETEXT等謂詞。如:
檢索ProductName中,即包含b又包含c的所有列
SELECT *
FROM Products
WHERE CONTAINS(ProductName, '"c*" and "b*" ')
檢索ProductName中,即包含chai chang tofu之一的所有列
SELECT *
FROM Products
WHERE FREETEXT(ProductName, 'chai chang tofu ')
我們還可以使用CONTAINSTABLE、FREETEXTTABLE等
4.我們可以用.Net創建WEB或Form客戶端,提供一個良好的全文檢索界面,使自己的應用程序得到擴展
參考:
全文查詢有關的系統存儲過程
(1)啟動數據庫的全文處理功能(sp_fulltext_datebase);
(2)建立全文目錄(sp_fulltext_catalog);
(3)在全文目錄中注冊需要全文索引的表(sp_fulltext_table);
(4)指出表中需要全文檢索的列名(sp_fulltext_column)
(5)為表創建全文索引(sp_fulltext_table);
(6)填充全文索引(sp_fulltext_catalog)。
全文查詢支持
Microsoft? SQL Server? 2000 在接收帶全文構造的 Transact-SQL 語句時,使用全文提供程序從 Microsoft 搜索服務檢索所需信息。全文構造是 CONTAINS 或 FREETEXT 謂詞,或者是 CONTAINSTABLE 或 FREETEXTTABLE 行集函數。如果不知道包含搜索條件的列,全文構造可以在全文索引中引用多列。該進程的流程如下圖所示。
這一進程涉及的步驟包括:
應用程序給 SQL Server 實例發送帶全文構造的 Transact-SQL 語句。
SQL Server 關系引擎通過查詢系統表驗證全文構造,確定全文索引是否覆蓋列引用。關系引擎將每個 SQL 語句簡化為一系列行集操作,並使用 OLE DB 將這些操作傳遞給基礎組件,通常是存儲引擎。關系引擎通過全文提供程序而不是存儲引擎,將任何全文構造轉換成對行集的請求。請求的行集是滿足搜索條件和等級的鍵集,而這個等級表示每個鍵的數據滿足搜索條件的程度。向全文提供程序發送的行集請求命令包括全文檢索條件。
全文提供程序驗證請求並將搜索條件更改為由Microsoft 搜索服務的查詢支持組件使用的形式。將請求發送到搜索服務。
查詢支持組件使用搜索引擎組件從全文索引析取所請求的數據。然後以行集的形式將這些數據傳遞回全文提供程序。
全文提供程序將這個行集返回給關系引擎。
關系引擎將它從存儲引擎和全文提供程序收到的所有行集進行組合,以生成發送回客戶端的最終結果集。
全文目錄和索引
Microsoft? SQL Server? 2000 全文索引為在字符串數據中進行復雜的詞搜索提供有效支持。全文索引存儲關於重要詞和這些詞在特定列中的位置的信息。全文查詢利用這些信息,可快速搜索包含具體某個詞或一組詞的行。
全文索引包含在全文目錄中。每個數據庫可以包含一個或多個全文目錄。一個目錄不能屬於多個數據庫,而每個目錄可以包含一個或多個表的全文索引。