SQL的全文索引

--在執行該腳本程序之前啓動sql server的全文搜索服務,即microsoft search服務
use pubs  --打開數據庫
go
--檢查pubs是否支持全文索引,如果不支持全文索引,則使用sp_fulltext_datebase打開該功能
if (select databaseproperty ('pubs','IsFulltextEnables'))=0
   execute sp_fulltext_database 'enable'
--建立全文目錄FT_pubs
execute sp_fulltext_catalog 'FT_pubs','create'
--爲titles表建立全文索引數據元
execute sp_fulltext_table 'titles','FT_pubs','UPKCL_titleidind'
--設置全文索引列名
execute sp_fulltext_column 'titles','title','add'
execute sp_fulltext_column 'titles','notes','add'
--建立全文索引
execute sp_fulltext_table 'FT_pubs','activate'
--填充全文索引目錄
execute sp_fulltext_catalog 'FT_pubs','start_full'
  GO
  --檢查全文目錄填充情況
   WHILE FulltextCatalogProperty("FT_pubs','PopulateStatus')<>0
    BEGIN
     --如果全文目錄正處於填充狀態,則等待30秒後再檢測一次
     WAITFOR DELAY ‘0:0:30’
    END
--全文目錄填充完成後,使用全文目錄檢索

--查詢title列或notes列中包含有database或computer字符串的圖書名稱
SELECT title
  FROM title
  where CONTAINTS(title,'database')
   or contains(notes,'database')
   or contains(title,'computer')
   or contains(notes,'computer')
上面是一個完整的例子,這樣查詢到的數據比like少數據,因爲全文索引是以詞組的形式查詢的 不想like只要符合就行 比如“上海” like‘%上%’可以查出來,但是全文索引不一定能查詢出來。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章