在SQL Server 中提供了一种名为全文索引的技术,可以大大提高从长字符串里搜索数
据的速度,不用在用LIKE这样低效率的模糊查询了。
 
下面简明的介绍如何使用Sql2008 全文索引

一、检查服务里面带有Full-text字样的服务是否存在并开启


如果不存在带有Full-text字样的服务的,确认是否安装了sqlserverFullTextSearch

二、新建全文目录

全文目录是用来存储全文索引的

三、为表定义全文索引

四、点击下一步,按提示选择

1.确认下一步

2.选择唯一索引,通常是主键

3.选择要建立的全文索引列,对于断字符的选择如果列存的是中文就选择chinese,如果是英文就选择English

4.选择索引更新方式,可以先自动更新,以后数据量大了可以设置添加全文索引的计划

5.选择全文目录

五、全文索引的SQL查询关键字

建立好全文索引后就可以使用SQL语句来查询了,主要用带三个关键字 CONTAINS、FREETEXT、CONTAINSTABLE和FREETEXTTABLE

1. CONTAINS

搜索单个词和短语的精确或模糊的匹配项,要搜索的内容必须是个有意义的词语,比如说“苹果”、“建设厅”,不能是一些没意义的词语,比如“阿迪撒啊是”,“儿儿的”这样的词语即使
LIKE是能查询出来,但全文索引对这样没意义的词语可能没有建立索引,查不出来
  1. SELECT *
  2. FROM dbo.Business
  3. WHERE CONTAINS(Address,'旅游')
实现功能:查询Business表中Address列包含“旅游”的行

2. FREETEXT

和CONTAINS类似,不同的是它会先把要查询的词语先进性分词然后在查询匹配项
  1. 01.select *
  2. 02.from dbo.Business
  3. 03.where freetext(Address,'带婴儿旅游')

3.CONTAINSTABLE

在查询方式上与 CONTAINS 几乎一样。但CONTAINSTABLE 返回的是符合查询条件的表,在 SQL 语句中我们可以把它当作一个普通的表来使用,并且使用 CONTAINSTABLE 的查询对每一行返回一个相关性排名值 (RANK) 和全文键 (KEY)。
  1. SELECT *
  2. FROM Business AS FT_TBL
  3. INNER JOIN CONTAINSTABLE(Business, *, 'ISABOUT (婴儿 WEIGHT (.8),赤水 WEIGHT (.4) )')
  4. AS KEY_TBL ON FT_TBL.BusinessId = KEY_TBL.[KEY]
  5. ORDER BY KEY_TBL.RANK DESC
ISABOUT 是这种查询的关键字,weight 指定了一个介于 0~1之间的数,类似系数。表示不同条件有不同的侧重。
CONTAINSTABLE 返回的表包含有特殊的两列:KEY,RANK。
被全文索引的表必须有唯一索引。这个唯一的索引列在返回的表中就成为 KEY。我们通常把它作为表连接的条件。
在某些网站搜索时,结果中会出现表示匹配程度的数字,RANK 与此类似。它的值在0~1000之间,标识每一行与查询条件的匹配程度,程度越高,RANK 的值大,通常情况下,按照 RANK 的降序排列。

4. FREETEXTTABLE

在查询方式上与 FREETEXT 几乎一样。但 FREETEXTTABLE 返回的是符合查询条件的表,在 SQL 语句中我们可以把它当作一个普通的表来使用,并且使用  FREETEXT  的查询对每一行返回一个相关性排名值 (RANK) 和全文键 (KEY)。
  1. SELECT * ,
  2. BusinessID ,
  3. Address
  4. FROM Business AS FT_TBL
  5. INNER JOIN FREETEXTTABLE(Business, Address, 'ISABOUT (带婴儿旅游 WEIGHT (.8),赤水 WEIGHT (.4) )')
  6. AS KEY_TBL ON FT_TBL.BusinessId = KEY_TBL.[KEY]
  7. ORDER BY KEY_TBL.RANK DESC
 
 

最新文章

  1. 仿喜马拉雅实现ListView添加头布局和脚布局
  2. appium 滑动
  3. ubuntu的vim模式
  4. BroadCast Receiver的使用
  5. PLSQL查询表是否被锁定(转)
  6. Hibernate框架之关联映射入门
  7. Android实现传感器应用及位置服务
  8. sersync做实时同步(第一步)
  9. [置顶] 【cocos2d-x入门实战】微信飞机大战之二:别急,先处理好CCScene和CCLayer的关系
  10. CentOS 6.3 安装 samba 共享(转)
  11. Vxlan与网卡offload性能
  12. ios自带的返回按键,点击不刷新页面
  13. 在MyEclipse中搭建spring-boot+mybatis+freemarker框架
  14. [20190320]测试相同语句遇到导致cursor pin S的情况.txt
  15. Mac pro 装双系统 参考
  16. SpringMVC环境搭建
  17. vue.js2.0开发中的几个技巧
  18. [No0000107]C#中 Excel列字母与数字的转换
  19. Remote error: VAR and OUT arguments must match parameter type exactly'
  20. 一次SQLServer数据库宕机问题

热门文章

  1. python 将一个列表乱序
  2. Hadoop平台的基本组成与生态系统
  3. 关于UDP很好的书籍和文章(整理、持续更新)
  4. Curious Array CodeForces - 407C (高阶差分)
  5. 非关联容器|hash|unordered_map/multimap,unordered_set/multiset
  6. Linux安装配置Nginx
  7. SQL (FMDB)
  8. L183 Chinese company unveils first satellite for free WiFi
  9. VMware上安装CenterOS
  10. NET Core的代码安全分析工具 - Security Code Scan