PS:最近在论坛上接连碰到有关SQL全文索引的提问,感觉有点代表性,特此准备写个系列文章,将我对SQL全文索引的理解与大家分享一下,欢迎各位批评指正。
在正式介绍SQL全文索引相关概念,先请各位跟着如下步骤实战一下:
- SQL code
--新建一个测试数据库,并指定排序规则为Chinese_PRC_CI_ASCREATE DATABASE TESTFT COLLATE Chinese_PRC_CI_AS GOUSE TESTFTGO--新建全文目录TestCL,并将其置为默认CREATE FULLTEXT CATALOG TestCL AS DEFAULT GO--新建测试表CREATE TABLE TB ( ID INT IDENTITY, Title VARCHAR(100), Body VARCHAR(1000), CONSTRAINT PK_TB PRIMARY KEY CLUSTERED (ID))GO--在TB表的title和body列上创建全文索引CREATE FULLTEXT INDEX ON TB (Title,Body) KEY INDEX PK_TBGO--插入两行演示数据INSERT TB(Title,Body) VALUES('艺术家评选','苍井空和小泽玛利亚是深受人民群众喜爱的著名艺术家')INSERT TB(Title,Body) VALUES('给苍老师的一封信','宁夏固原有一位网友给敬爱的苍老师写了一封信')GO
OK,到目前为止,准备工作基本完成,下面开始查询
- SQL code
--例1:SELECT * FROM TB WHERE CONTAINS(*,'小')/*ID Title Body----------- ------------------------------ ------------------------------------------------------(0 行受影响)*/SELECT * FROM TB WHERE CONTAINS(*,'小泽')/*ID Title Body----------- ------------------------------ ------------------------------------------------------1 艺术家评选 苍井空和小泽玛利亚是深受人民群众喜爱的著名艺术家(1 行受影响)*/--例2:SELECT * FROM TB WHERE CONTAINS(*,'苍')/*ID Title Body----------- ------------------------------ ------------------------------------------------------1 艺术家评选 苍井空和小泽玛利亚是深受人民群众喜爱的著名艺术家(1 行受影响)*/SELECT * FROM TB WHERE CONTAINS(*,'苍老师')/*ID Title Body----------- ------------------------------ ------------------------------------------------------2 给苍老师的一封信 宁夏固原有一位网友给敬爱的苍老师写了一封信(1 行受影响)*/
看着上面的查询结果,是不是很奇怪,这和我们的预期完全不一样嘛,怎么会这样呢?
《SQL SERVER 2005/2008 全文索引介绍 (一)》全文完,敬请期待《SQL SERVER 2005/2008 全文索引介绍 (二)》,呵呵!
------解决方案--------------------
广告位出租
------解决方案--------------------
皇族都已经双钻了?牛啊
------解决方案--------------------
我这也贴个 2000与2005的全文索引吧,共同探讨
------解决方案--------------------
全文索引对中文的支持累人
------解决方案--------------------
学习 ..盖章
------解决方案--------------------
学习,来过~~~~~~~~
------解决方案--------------------
4fv
------解决方案--------------------
很好啊
------解决方案--------------------
学习了
------解决方案--------------------
实在是高
------解决方案--------------------
期待解释
------解决方案--------------------
非常感谢
------解决方案--------------------
高人们 能解决 中英文混排 分词 的问题 才行啊
------解决方案--------------------
楼主好像是要说明光有“小”是不行的
------解决方案--------------------
一直在用SQL Server Personal版本,不支持全文搜索,不过仍学一下,
------解决方案--------------------