SQL Server之1:全文檢索搜尋(1)

來源:互聯網
上載者:User
本章介紹在SQL Server 2008 R2 下的全文索引,它能夠對資料中的字元類型列(如varchar、text等類型)進行索引,並通過索引實現全文檢索搜尋查詢。首先對比簡單介紹一下常規索引和全文索引的區別,如:OK,下面我們就利用SQL Server 提供的預存程序來建立一個全文索引,具體步驟為:(1)啟動資料庫的全文處理功能(sp_fulltext_datebase);
(2)建立全文檢索目錄(sp_fulltext_catalog);
(3)在全文檢索目錄中註冊需要全文索引的表(sp_fulltext_table);
(4)指出表中需要全文檢索索引的列名(sp_fulltext_column)
(5)為表建立全文索引(sp_fulltext_table);
(6)填充全文索引(sp_fulltext_catalog)。

接下來用執行個體一步步示範:

 

SQL Server 全文檢索搜尋

use DBFullText

-- 建表
createtable Student
(
id intprimarykeyidentity(1,1) notnull,
name nvarchar(30) null,
familyAddress nvarchar(100) null,
schoolAddress nvarchar(100) null
)

--插入一些資料
insertinto Student values('SAVEA','187 Suffolk Ln.','1900 Oak St.')
insertinto Student values('VICTE','2, rue du Commerce','23 Tsawassen Blvd.')
insertinto Student values('BLONP','24, place Kléber','25, rue Lauriston')
insertinto Student values('PARIS','265, boulevard Charonne','2732 Baker Blvd.')
insertinto Student values('OLDWO','2743 Bering St.','2817 Milton Dr.')
insertinto Student values('WANDK','Adenauerallee 900','Åkergatan 24')
insertinto Student values('BERGS','Berguvsvägen 8','Carrera 22 con Ave. Carlos Soublette #8-35')
insertinto Student values('SANTG','Carrera 52 con Ave. Bolívar #65-98 Llano Largo','Erling Skakkes gate 78')
insertinto Student values('OCEAN','Grenzacherweg 237','Jardim das rosas n. 32')
insertinto Student values('LEHMS','Sierras de Granada 9993','Via Ludovico il Moro 22')
insertinto Student values('SIMOB','South House 300 Queensbridge','P.O. Box 555')

--檢查 DBFullText 是否支援全文索引,如果不支援全文索引,則使用sp_fulltext_datebase開啟該功能
if (selectdatabaseproperty ('DBFullText','IsFulltextEnables'))=0
exec sp_fulltext_database 'enable'

--建立全文檢索目錄(‘全文檢索目錄名‘,’建立/刪除‘)
exec sp_fulltext_catalog 'FT_Student','create'

--建立全文索引(‘表名‘,’建立/刪除‘,’名稱‘,’約束名‘),這裡的約束名就是建表的時候自動產生的主鍵約束
exec sp_fulltext_table 'Student','create','FT_Student','PK_Student'

--設定全文索引列(‘表名‘,’列名‘,’添加/刪除‘)
exec sp_fulltext_column 'Student','familyAddress','add'
exec sp_fulltext_column 'Student','schoolAddress','add'

--啟用表的全文檢索索引能力,也就是在全文檢索目錄中註冊該表
exec sp_fulltext_table 'Student','activate'

--填充全文索引目錄
exec sp_fulltext_catalog 'FT_Student','start_full'

--測試一下
select*from Student wherecontains (familyAddress,'South')
select*from Student wherecontains (schoolAddress,'Dr.') OK,現在全文檢索搜尋的SQL Server代碼部分已經做完。其實在SQL Server 2008 R2裡面,完全不用上面那麼多代碼去操作預存程序建立全文索引,它內建的有 ‘Full Text Catalogs’,我們完全可以手動建立一個全文索引(實現過程當然是調用預存程序,只不過在這裡省略了),首先找到目錄Storage -> Full Text Catalogs,然後建立一個新的Full Text Catalog,如   然後開啟它,選擇要進行全文索引的列,如  儲存之後,即可做如上述的全文檢索搜尋。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.