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

2021-09-22 02:54:05 字數 3690 閱讀 1241

之前曾經指導 sqlserver2000 的全文檢索功能,不過不太清楚它的實際操作步驟和功能,現特地作了一次完整的實驗,對 sqlserver2000 的該功能,做了一番了解。

-- 驗證全文檢索服務是否安裝

-- 通過儲存過程 fulltextserviceproperty (返回有關全文服務級別屬性的資訊)來驗證搜尋服務(全文元件)是否安裝。

-- 如 select fulltextserviceproperty ('isfulltextinstalled')

-- 返回 1 表示已安裝全文元件;

-- 返回 0 表示未安裝全文元件;

-- 返回 null 表示輸入無效或發生錯誤。

select fulltextserviceproperty ('isfulltextinstalled')

-- 選乙個資料庫 進行全文檢索

use fulltexttest go

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

exec sp_fulltext_database 'disable'

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

execute sp_fulltext_database 'enable' go

-- 建立全文目錄 ft_news ,新聞庫

-- 使用不同引數進行全文目錄的建立、重建、填充、刪除

--create    建立

--rebuild   填充

--start_full  啟動填充

--stop      刪除

-- 以下執行新聞目錄的建立

execute sp_fulltext_catalog 'ft_news', 'create' go

-- 為 titles 表建立全文索引資料元, pk_dtlmb,pk_dtxxb 是主鍵所建立的唯一索引,可由 sp_help titles 得知

--sp_fulltext_table [ @tabname = ] 'qualified_table_name'

--   , [ @action = ] 'action'

--   [ , [ @ftcat = ] 'fulltext_catalog_name'

--   , [ @keyname = ] 'unique_index_name' ]

-- 為以下資料表分別建立主鍵

--alter table dtlmb add constraint pk_dtlmb primary key clustered (t_dtlmb_id)

--alter table dtxxb add constraint pk_dtxxb primary key clustered (guid)

-- 為全文索引對錶進行標記

execute sp_fulltext_table 'dtlmb','create', 'ft_news', 'pk_dtlmb' go

execute sp_fulltext_table 'dtxxb','create', 'ft_news', 'pk_dtxxb' go

-- 設定全文索引列名

exec sp_fulltext_column 'dtlmb', 'dtlmlx', 'add' go

exec sp_fulltext_column 'dtlmb', 'zt', 'add' go

exec sp_fulltext_column 'dtlmb', 'cc', 'add' go

exec sp_fulltext_column 'dtxxb', 'dtxxlmlx', 'add' go

exec sp_fulltext_column 'dtxxb', 'zt', 'add' go

exec sp_fulltext_column 'dtxxb', 'cc', 'add' go

-- 啟用全文索引

exec sp_fulltext_table 'dtlmb', 'activate' go

exec sp_fulltext_table 'dtxxb', 'activate' go

-- 填充全文索引目錄

exec sp_fulltext_catalog 'ft_news', 'start_full' go

-- 檢查全文目錄填充情況,一共兩張表 36 條記錄花了 33 分鐘

while fulltextcatalogproperty('ft_news','populatestatus')<>0

begin

-- 如果全文目錄正處於填充狀態,則等待 30 秒後再檢測一次

waitfor delay '0:0:30'

end-- 全文目錄填充完成後,使用全文目錄檢索

-- 使用 contains 和 freetext

select zt,cc from dtlmb

where contains(zt, '***') go

select zt,cc from dtlmb

where contains(*, '"***"') go

select dtxxlmlx,zt,cc from dtxxb

where freetext(zt, '***') go

select dtxxlmlx,zt,cc from dtxxb

where freetext (*, '"***"') go

select * from dtxxb where zt like 『%***%』

-- 與全文檢索相比,從網路統計資訊 -> 所接收的位元組數 / 時間統計資訊 -> 伺服器應答累計等待時間 , 時間相差乙個資料量級

-- 增量填充,即啟用並傳播跟蹤更改

-- 當更改發生時,下面的示例啟用並啟動將所跟蹤的更改傳播到全文索引。

-- 如果表不包含 timestamp 列,則只能執行完全填充或更改跟蹤填充

exec sp_fulltext_table dtlmb, 'start_change_tracking' -- 啟動全文索引的增量填充

exec sp_fulltext_table dtlmb, 'start_background_updateindex' -- 在變化發生時,開始將跟蹤的變化傳播到全文索引。

-- 更改一條記錄,大約過一分鐘之後,便可通過全文檢索查詢到 

sqlserver2000 企業管理 器中關於全文檢索部分的功能和步驟

1、  從表上定義全文檢索,即通過嚮導的方式,選擇相應的全文目錄和待查詢的全文檢索字段,系統會通過該錶有無主鍵判斷該錶是否能夠建立全文索引,同時也可實現對全文檢索的排程。

2、  編輯全文檢索,功能同上,對乙個已經存在的全文索引進行修改。

3、  從表中刪除全文索引,這個就不用說了

4、  啟動完全填充,全文檢索建立之後,系統並不會自動填充索引內容,需要執行該任務或者指令碼。

如果為全文目錄請求完全填充,則為該目錄所涉及的所有表中的所有行生成索引項。如果為表請求完全填充,則為該表中的所有行生成索引項。完全填充通常發生在當首先填充目錄或索引,然後使用更改跟蹤或增量填充來維護索引時。

5、  啟動增量填充

6、  停止填充,停止當前的填充任務,不管是完全還是增量。

7、  更改跟蹤

維護在系統表中已修改的行的記錄,並將更改傳播到全文索引。通過執行 sp_fulltext_table 啟動更改跟蹤並為 @action 引數指定 start_change_tracking 。使用更改跟蹤時,也指定從歷史表取得更改並在全文索引中填充更改的時間

8、  更新後台中的索引

9、  更新索引

10、 排程,建立乙個排程任務指定時間對資料進行全文檢索更新

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

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

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

之前曾經指導 sqlserver2000 的全文檢索功能,不過不太清楚它的實際操作步驟和功能,現特地作了一次完整的實驗,對 sqlserver2000 的該功能,做了一番了解。驗證全文檢索服務是否安裝 通過儲存過程 fulltextserviceproperty 返回有關全文服務級別屬性的資訊 來驗...

SQLSERVER2000技術規格

sqlserver2000技術規格 系統技術規格 每個伺服器最多可以允許16個sqlserver例項 每個例項可擁有 2147483467 個鎖 資料庫技術規格 sqlserver的資料庫大小1048516tb 每個資料庫可擁有的檔案組數32767 每個資料庫可擁有的檔案組數256 檔案大小 資料檔...