SQL Server 2000全文檢索

2021-09-30 07:03:13 字數 4379 閱讀 1857

sql server 2000全文檢索

一、如何在sql中啟用全文檢索功能

1、證全文檢索服務是否安裝

通過儲存過程fulltextserviceproperty(返回有關全文服務級別屬性的資訊)來驗證搜尋服務(全文元件)是否安裝。如select fulltextserviceproperty (『isfulltextinstalled』):返回1表示已安裝全文元件;返回0表示未安裝全文元件;返回null表示輸入無效或發生錯誤。

2、啟動全文檢索服務(mircosoft search)

3、開啟資料庫全文索引的支援

為全文索引啟用資料庫:

use northwind

exec sp_fulltext_database  『enable』

從資料庫中刪除所有目錄:

use northwind

exec sp_fulltext_database 『disable』

二、建立全文目錄

1、建立全文目錄

use northwind

exec sp_fulltext_catalog 'ft_ catalog ', 'create'

2、重建全文目錄

use northwind

exec sp_fulltext_catalog 'ft_ catalog ', ' rebulid'

3、啟動全文目錄的填充

use northwind

exec sp_fulltext_catalog 'ft_ catalog ', 'start_full'

4、停止全文目錄的填充

use northwind

exec sp_fulltext_catalog 'ft_ catalog ', 'stop'

5、刪除全文目錄

use northwind

pk_products

exec sp_fulltext_catalog 'ft_ catalog ', 'drop'

三、為表建立全文索引資料元

1、建立的唯一索引

use northwind

exec sp_fulltext_table 'products','create', 'ft_ catalog', ' pk_products '

2、設定全文索引列名

use northwind

exec sp_fulltext_table 'products','create', 'ft_ catalog', ' pk_products '

3、設定全文索引列名

use northwind

exec sp_fulltext_column ' products ', productname', 'add'

goexec sp_fulltext_column ' products ', quantityperunit', 'add'

go4、啟用全文索引

use northwind

exec sp_fulltext_table 'products','activate

5、填充全文索引目錄

use northwind

exec sp_fulltext_catalog 'ft_ catalog ', 'start_full'

四、使用transact-sql進行全文檢索,我們使用contains、freetext等謂詞

1、檢索productname中,即包含b又包含c的所有列

use northwind

select *

from products

where contains(productname, '"c*" and "b*" ')

2、檢索productname中,即包含chai chang tofu之一的所有列

use northwind

select *

from products

where freetext(productname, 'chai chang tofu ')

五、全文查詢有關的系統儲存過程

(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 全文索引為在字串資料中進行複雜的詞搜尋提供有效支援。全文索引儲存關於重要詞和這些詞在特定列中的位置的資訊。全文查詢利用這些資訊,可快速搜尋包含具體某個詞或一組詞的行。

全文索引包含在全文目錄中。每個資料庫可以包含乙個或多個全文目錄。乙個目錄不能屬於多個資料庫,而每個目錄可以包含乙個或多個表的全文索引。乙個表只能有乙個全文索引,因此每個有全文索引的表只屬於乙個全文目錄。

全文目錄和索引不儲存在它們所屬的資料庫中。目錄和索引由 microsoft 搜尋服務分開管理。

全文索引必須在基表上定義,而不能在檢視、系統表或臨時表上定義。 全文索引的定義包括:

能唯一標識表中各行的列(主鍵或候選鍵),而且不允許 null 值。

索引所覆蓋的乙個或多個字串列。

全文索引由鍵值填充。每個鍵的項提供與該鍵相關聯的重要詞(干擾詞或終止詞除外)、它們所在的列和它們在列中的位置等有關資訊。

格式化文字字串(如 microsoft® word™ 文件檔案或 html 檔案)不能儲存在字串或 unicode 列中,因為這些檔案中的許多位元組包含不構成有效字元的資料結構。資料庫應用程式可能仍需要訪問這些資料並對其應用全文檢索。因為 image 列並不要求每一位元組都構成乙個有效字元,所以許多站點將這類資料儲存在 image 列中。sql server 2000 引入了對儲存在 image 列中的這些型別的資料執行全文檢索的能力。sql server 2000 提供篩選,可從 microsoft office™ 檔案(.doc、.xls 和 .ppt 檔案)、文字檔案(.txt 檔案)及 html 檔案(.htm 檔案)中析取文字化資料。設計表時除包括儲存資料的 image 列外,還需包括繫結列來儲存儲存在 image 列中的資料格式的副檔名。可以建立引用 image 列和繫結列的全文索引,以便在儲存於 image 列中的文字化資訊上啟用全文檢索。sql server 2000 全文檢索引擎使用繫結列中的副檔名資訊,選擇從列中析取文字化資料的合適的篩選。

全文索引是用於執行兩個 transact-sql 謂詞的元件,以便根據全文檢索條件對行進行測試:

contains

freetext

transact-sql 還包含兩個返回符合全文檢索條件的行集的函式:

containstable

freetexttable

sql server 在內部將搜尋條件傳送給 microsoft 搜尋服務。microsoft 搜尋服務查詢所有符合全文檢索條件的鍵並將它們返回給 sql server。sql server 隨後使用鍵的列表來確定表中要處理的行。

全文索引

對 microsoft® sql server™ 2000 資料的全文支援涉及兩個功能:對字元資料發出查詢的能力和建立及維護基礎索引以簡化這些查詢的能力。

全文索引在許多地方與普通的 sql 索引不同。

sqlServer2000建立全文索引

exec sp fulltext database enable exec sp fulltext catalog xx create exec sp fulltext table articleinfo create xx pk articleinfo 1 exec sp fulltext col...

關於SQLServer2000的全文檢索使用心得

原創於2008年06月28日,2009年10月18日遷移至此。之前曾經指導 sqlserver2000 的全文檢索功能,不過不太清楚它的實際操作步驟和功能,現特地作了一次完整的實驗,對 sqlserver2000 的該功能,做了一番了解。驗證全文檢索服務是否安裝 通過儲存過程 fulltextser...

如何使用SQL Server 2000全文檢索

一 如何在sql中啟用全文檢索功能 1 驗證全文檢索服務是否安裝 通過儲存過程fulltextserviceproperty 返回有關全文服務級別屬性的資訊 來驗證搜尋服務 全文元件 是否安裝。如select fulltextserviceproperty isfulltextinstalled 返...