Sql2008 全文索引 简明教程
教程 简明 全文索引 sql2008
2023-09-11 14:14:06 时间
在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是能查询出来,但全文索引对这样没意义的词语可能没有建立索引,查不出来
-
SELECT *
-
FROM dbo.Business
-
WHERE CONTAINS(Address,'旅游')
实现功能:查询Business表中Address列包含“旅游”的行
2. FREETEXT
和CONTAINS类似,不同的是它会先把要查询的词语先进性分词然后在查询匹配项
-
01.select *
-
02.from dbo.Business
-
03.where freetext(Address,'带婴儿旅游')
3.CONTAINSTABLE
在查询方式上与 CONTAINS 几乎一样。但CONTAINSTABLE 返回的是符合查询条件的表,在 SQL 语句中我们可以把它当作一个普通的表来使用,并且使用 CONTAINSTABLE 的查询对每一行返回一个相关性排名值 (RANK) 和全文键 (KEY)。
-
SELECT *
-
FROM Business AS FT_TBL
-
INNER JOIN CONTAINSTABLE(Business, *, 'ISABOUT (婴儿 WEIGHT (.8),赤水 WEIGHT (.4) )')
-
AS KEY_TBL ON FT_TBL.BusinessId = KEY_TBL.[KEY]
-
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)。
-
SELECT * ,
-
BusinessID ,
-
Address
-
FROM Business AS FT_TBL
-
INNER JOIN FREETEXTTABLE(Business, Address, 'ISABOUT (带婴儿旅游 WEIGHT (.8),赤水 WEIGHT (.4) )')
-
AS KEY_TBL ON FT_TBL.BusinessId = KEY_TBL.[KEY]
-
ORDER BY KEY_TBL.RANK DESC
相关文章
- AWK 简明教程
- TortoiseSVN 合并操作简明教程
- 倍福TwinCAT(贝福Beckhoff)应用教程11.1 TwinCAT应用小程序1 贝福IO模块介绍
- 为Ubuntu 20.04 设置静态IP简明教程(转)
- DOCKER简明教程 : 通过容器连接REDIS数据库
- 【秒懂】号称最为简明实用的Django上手教程(下)
- k8s kustomize 简明教程:安装 kustomization.yml常用字段解读
- git简明教程:基本操作命令
- scala简明教程:偏函数、高阶函数、Future异步编程、隐式转换
- 硬核发布基于STM32H7的自适应滤波器教程,无需matlab生成系数,支持自学习(2021-09-20)
- 【STM32F429的DSP教程】第50章 STM32F429的样条插补实现,波形拟合丝滑顺畅
- SAP UI5 初学者教程之七 - JSON 模型初探试读版
- 如何入门 Python 爬虫?详细教程在这里
- WebRTC 教程四: WebRTC聊天室设计和搭建
- linux之SQL语句简明教程---主键,外来键
- lxml简明教程
- wireshark简明教程,新手专用,挑实在的讲,不搞花里胡哨
- Openstack的安装部署教程
- Linux下CMake简明教程(九) 添加控制选项
- Linux下CMake简明教程(七)对库进行链接
- Linux下CMake简明教程(六)动态库和静态库的编译控制
- Linux下CMake简明教程(五)正规一点的组织结构
- Linux下CMake简明教程(四)不同目录下多个源文件
- Linux下CMake简明教程(一)简单入门
- CSDN Markdown简明教程5-高速上手
- CSDN Markdown简明教程3-表格和公式
- JSP简明教程(四):EL表达式语言、JavaBean、Cookie、Session
- Linux下CMake简明教程(六)动态库和静态库的编译控制
- Linux下CMake简明教程(五)正规一点的组织结构