1. 程式人生 > >全文索引建立例項

全文索引建立例項

全文索引建立例項

create   table   testIndex
(
          id   int   identity(1,1)   primary   key,
          nm   varchar(100)   unique   not   null,
          sex   varchar(10)
)
create UNIQUE index UQ__testIndex__0DAF0CB0
on testindex(nm)

insert   into   testindex  
          select   'aaabbb','m'   union   all
          select   'bbb','w'   union   all
          select   'ccc','w'   union   all
          select   'ddd','m'


insert   into   testindex  
          select   '麥蒂未傷愈中途退出訓練復出時間再度成疑','北京' 
go
--建立全文目錄
sp_fulltext_catalog   'abc','create'    
go
--建立全文索引(‘表名‘,’建立/刪除‘,’全文目錄名‘,’約束名‘)
sp_fulltext_table   'testindex','create','abc','UQ__testIndex__0DAF0CB0'
go
--新增列到全文索引(‘表名‘,’列名‘,’新增/刪除‘)
sp_fulltext_column   'testindex','nm','add'

go
--建立全文索引
--activate,是啟用表的全文檢索能力,也就是在全文目錄中註冊該表
execute sp_fulltext_table 'testindex','activate'
go
--填充全文索引目錄
execute sp_fulltext_catalog 'abc','start_full'
go

--檢查全文目錄填充情況
While fulltextcatalogproperty('abc','populateStatus')<>0
begin

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

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

 


SELECT   *   FROM   testindex   WHERE   CONTAINS(nm,   '麥蒂')

/*

id          nm                                                                                                 sex       
----------- --------------------------------------------- ------------------------------------------------ ----------
5           麥蒂未傷愈中途退出訓練復出時間再度成疑                                                             北京

(所影響的行數為 1 行)
*/
insert   into   testindex  
          select   '麥蒂未傷愈中途退出訓練復出時間再度成疑12121','北京' 
go
SELECT   *   FROM   testindex   WHERE   CONTAINS(nm,   '麥蒂')
-----No result
/*

id          nm                                                                                                 sex       
----------- --------------------------------------------- ------------------------------------------------ ----------
5           麥蒂未傷愈中途退出訓練復出時間再度成疑                                                             北京

(所影響的行數為 1 行)
*/
go

--填充全文索引目錄
execute sp_fulltext_catalog 'abc','start_full'
go
--檢查全文目錄填充情況
While fulltextcatalogproperty('abc','populateStatus')<>0
begin

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


SELECT   *   FROM   testindex   WHERE   CONTAINS(nm,   '麥蒂')

go
/*

id          nm                                                                                                   sex       
----------- ---------------------------------------------------------------------------------------------------- ----------
6           麥蒂未傷愈中途退出訓練復出時間再度成疑12121                                                                             北京
5           麥蒂未傷愈中途退出訓練復出時間再度成疑                                                                                  北京

(所影響的行數為 2 行)

*/
sp_fulltext_table  'testindex','drop'
go
sp_fulltext_catalog   'abc','drop' 
go 
drop table testIndex

 

 

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/htl258/archive/2009/04/25/4116721.aspx