程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL全文檢索例講

SQL全文檢索例講

編輯:關於SqlServer

大家可能都會用
select * from tb where fIEld like '%關鍵字%'
但是一旦數據量大用戶多,就會造成查詢過慢,因此MS提供一種犧牲空間來換取時間的解決方案。
全文檢索。原文請看
http://www.microsoft.com/china/msdn/archives/library/dnsql2k/Html/sql_fulltextsearch.ASP
我對自己的實現加了些注釋:

use  PopAsk
--使用這個庫

exec sp_fulltext_database 'enable'
--使這個庫允許全文檢索

-----以下對Question_Total表操作------
/*
首先:要為全文檢索目錄起個名字,比如Q_ID_Desc
然後:要確保你這個表必須有個唯一主鍵,比如我這個Question_Total表,主鍵名是:PK_Question_Total
剩下就把要檢索的列加進去就可以了。
*/
exec sp_fulltext_catalog 'Q_ID_Desc', 'create'
--創建名為Q_ID_Desc的全文檢索目錄,默認位置。

exec sp_fulltext_table 'Question_Total', 'create', 'Q_ID_Desc',  'PK_Question_Total'
-- 把Question_Total這個表,創建到全文檢索目錄中,指定主鍵。

exec sp_fulltext_column 'Question_Total', 'Title', 'add'
-- 把Question_Total這個表,要檢索的Title列,添加到全文檢索中。

exec sp_fulltext_column 'Question_Total', 'Content', 'add'
-- 把Question_Total這個表,要檢索的Content列,添加到全文檢索中。

exec sp_fulltext_table 'Question_Total', 'start_full'
-- 填充全文檢索記錄。

select FULLTEXTCATALOGPROPERTY('Q_ID_Desc', 'Populatestatus')
-- 這句可以不用,是檢測是否添完狀態的,1代表正在進行,0代表完成。

-----以下對另外一個表Answer_Total操作------
exec sp_fulltext_catalog 'A_ID_Desc', 'create'
--創建名為A_ID_Desc的全文檢索目錄,默認位置。

exec sp_fulltext_table 'Answer_Total', 'create', 'A_ID_Desc',  'PK_Answer_Total'
-- 把Question_Total這個表,創建到全文檢索目錄中,指定主鍵。

exec sp_fulltext_column 'Answer_Total', 'Answer_Content', 'add'
-- 把Answer_Total這個表,要檢索的Answer_Content列,添加到全文檢索中。

exec sp_fulltext_table 'Answer_Total', 'start_full'
-- 填充全文檢索記錄。

select FULLTEXTCATALOGPROPERTY('A_ID_Desc', 'Populatestatus')
-- 這句可以不用,是檢測是否添完狀態的,1代表正在進行,0代表完成。

/*
執行下列語句用於檢索。
SELECT *
FROM FREETEXTTABLE(Question_Total, title, '測試')

SELECT *
FROM FREETEXTTABLE(Answer_Total, Answer_Content, '測試')
*/

躁聲字文件

C:Program FilesMicrosoft SQL ServerMSSQLFTDATASQLServerConfig oise.chs

我參考別人的做法,只保留了一個?號。

還有數據庫默認語言排序規則設置成Chinese_PRC_CI_AS

不要忘記建立一個作業,定時(一般可以每天)為全文檢索添加記錄。
exec sp_fulltext_table 'Answer_Total', 'start_full'
 
exec sp_fulltext_table 'Question_Total', 'start_full'
-- 填充全文檢索記錄。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved