建立SQL全文索引

來源:互聯網
上載者:User

1.

-------------開啟全文索引和建立全文索引目錄
exec sp_fulltext_database 'enable'
--exec sp_fulltext_catalog 'gf_ft','drop'
exec sp_fulltext_catalog 'gf_ft','create'

-------------為news表建立全文索引 可索引列為 title,abstract,text

exec sp_fulltext_table 'product','create','gf_ft','pk_product'
exec sp_fulltext_column 'product','productname','add'

-------------啟用索引
exec sp_fulltext_table 'product','activate'
exec sp_fulltext_table 'product','start_full'

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

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

exec sp_fulltext_catalog 'gf_ft','start_full'

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

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

--------------測試------------------
SELECT * FROM product WHERE CONTAINS(productname,'美贊臣')

-----------------------卸載------------------

EXEC sp_fulltext_table 'product','deactivate'
exec sp_fulltext_column 'product', 'productname', 'drop'
EXEC sp_fulltext_table 'product', 'drop'
EXEC sp_fulltext_catalog 'gf_ft', 'stop'
EXEC sp_fulltext_catalog 'gf_ft', 'drop'

 

 

2.

先瞭解一下全文索引是如何建立和使用的

      建立全文索引:

      在MS SQL SERVER 2005裡,全文索引是一個單獨的服務項,預設是啟動的,但是沒有允許資料庫啟用全文索引,如果要在某個資料庫中建立全文索引,先要啟用資料庫的全文索引.
      啟用方法:
      1.資料庫->屬性->常規->啟用全文索引
      2.在查詢中執行:sp_.........忘了,如果沒有啟用就執行建立索引目錄,會提示.

     
      啟用了索引了,就可以建立索引目錄了
      在查詢中執行以下語句:
      CREATE FULLTEXT CATALOG 索引目錄名

      執行以後,就會在SQL SERVER的安裝目錄裡看到一個同名的目錄名了,路徑為MSSQL.1/MSSQL/FTDATA/索引目錄名

     
      每個表只可以有一個全文索引,存放在指定的索引目錄裡,可以通過嚮導建立,也可以通過SQL建立
      基本文法:
      CREATE FULLTEXT INDEX ON tablename
      (索引列1,索引列2...)
      KEY INDEX indexname ON 索引目錄名

      indexname是指已存在的基於指定表的唯一索引名.而不是唯一索引列名.如果索引不存在,需要先建立唯一索引.

     
      使用全文索引:

      主要使用CONTAINS,FREETEXT進行查詢

      假設已有一個表music,已為欄位memo建立全文索引,那麼要查詢含有周杰倫或者jay的所有記錄的語句為:
      SELECT * FROM music WHERE CONTAINS(memo,'"周杰倫" or "jay"')

      也可以使用匹配模式進行包含條件組合,還可以使用and串連條件.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.