SqlServer——全文索引
2016-06-05 22:59
295 查看
当我们想要模糊查询时,之前用like %来进行查询,但是为了提高查询速度,提出了全文索引。
全文索引是用空间换取了时间,它将每个表中的数据进行切分存储,这样就能很快的定位到模糊查询的数据。
全文索引快的原因以及contains与like查找区别比较
下面是摘自百度百科的介绍:
全文索引技术是目前搜索引擎的关键技术。
试想在1M大小的文件中搜索一个词,可能需要几秒,在100M的文件中可能需要几十秒,如果在更大的文件中搜索那么就需要更大的系统开销,这样的开销是不现实的。
所以在这样的矛盾下出现了全文索引技术,有时候有人叫倒排文档技术。
---------------------------------------------------------------------
创建全文索引的步骤如下:
以下面这张表为例:
![](https://images2015.cnblogs.com/blog/797087/201606/797087-20160605225605617-495232113.gif)
![](https://images2015.cnblogs.com/blog/797087/201606/797087-20160605225754477-1990124267.gif)
![](https://images2015.cnblogs.com/blog/797087/201606/797087-20160605230051586-786603685.gif)
![](https://images2015.cnblogs.com/blog/797087/201606/797087-20160605230105414-987376812.gif)
![](https://images2015.cnblogs.com/blog/797087/201606/797087-20160605230118039-1350758809.gif)
![](https://images2015.cnblogs.com/blog/797087/201606/797087-20160605230535274-673962490.gif)
![](https://images2015.cnblogs.com/blog/797087/201606/797087-20160605230555461-347763893.gif)
![](https://images2015.cnblogs.com/blog/797087/201606/797087-20160605230607961-348010736.gif)
![](https://images2015.cnblogs.com/blog/797087/201606/797087-20160605230619086-687430769.gif)
![](https://images2015.cnblogs.com/blog/797087/201606/797087-20160605230853149-916301780.gif)
--------以上内容是创建索引,下面简单说说索引的使用-------
注意:使用全文索引是注意要开启SQL Full-text Filter Daemon Launcher (MSSQLSERVER)服务。
SQL Server提供的全文索引语句主要有CONTAINS和FREETEXT
(1)CONTAINS语句的功能是在表的所有列或指定列中搜索:一个字或短语;一个字或短语的前缀;与一个字相近的另一个字;一个字的派生字;一个重复出现的字。
(2)FREETEXT语句的功能是在一个表的所有列或指定列中搜索一个自由文本格式的字符串,并返回与该字符串匹配的数据行。所以,FREETEXT语句所执行的功能又称做自由式全文查询。
有了以上概念,下面我来演示下:
![](https://images2015.cnblogs.com/blog/797087/201606/797087-20160605231949258-1603249955.gif)
全文索引是用空间换取了时间,它将每个表中的数据进行切分存储,这样就能很快的定位到模糊查询的数据。
全文索引快的原因以及contains与like查找区别比较
下面是摘自百度百科的介绍:
全文索引技术是目前搜索引擎的关键技术。
试想在1M大小的文件中搜索一个词,可能需要几秒,在100M的文件中可能需要几十秒,如果在更大的文件中搜索那么就需要更大的系统开销,这样的开销是不现实的。
所以在这样的矛盾下出现了全文索引技术,有时候有人叫倒排文档技术。
---------------------------------------------------------------------
创建全文索引的步骤如下:
以下面这张表为例:
![](https://images2015.cnblogs.com/blog/797087/201606/797087-20160605225605617-495232113.gif)
![](https://images2015.cnblogs.com/blog/797087/201606/797087-20160605225754477-1990124267.gif)
![](https://images2015.cnblogs.com/blog/797087/201606/797087-20160605230051586-786603685.gif)
![](https://images2015.cnblogs.com/blog/797087/201606/797087-20160605230105414-987376812.gif)
![](https://images2015.cnblogs.com/blog/797087/201606/797087-20160605230118039-1350758809.gif)
![](https://images2015.cnblogs.com/blog/797087/201606/797087-20160605230535274-673962490.gif)
![](https://images2015.cnblogs.com/blog/797087/201606/797087-20160605230555461-347763893.gif)
![](https://images2015.cnblogs.com/blog/797087/201606/797087-20160605230607961-348010736.gif)
![](https://images2015.cnblogs.com/blog/797087/201606/797087-20160605230619086-687430769.gif)
![](https://images2015.cnblogs.com/blog/797087/201606/797087-20160605230853149-916301780.gif)
--------以上内容是创建索引,下面简单说说索引的使用-------
注意:使用全文索引是注意要开启SQL Full-text Filter Daemon Launcher (MSSQLSERVER)服务。
SQL Server提供的全文索引语句主要有CONTAINS和FREETEXT
(1)CONTAINS语句的功能是在表的所有列或指定列中搜索:一个字或短语;一个字或短语的前缀;与一个字相近的另一个字;一个字的派生字;一个重复出现的字。
(2)FREETEXT语句的功能是在一个表的所有列或指定列中搜索一个自由文本格式的字符串,并返回与该字符串匹配的数据行。所以,FREETEXT语句所执行的功能又称做自由式全文查询。
有了以上概念,下面我来演示下:
![](https://images2015.cnblogs.com/blog/797087/201606/797087-20160605231949258-1603249955.gif)
![](https://images2015.cnblogs.com/blog/797087/201606/797087-20160605232132008-2061505654.gif)
相关文章推荐
- MongoDB for Java Programmer ——2
- SQL语言基础
- Oracle 关系数据库
- NOSql之redis的学习
- sql语句判断两个时间段是否有交集
- 一个 SQL 分段排序的问题(也可以理解为 段内汇总排序问题)
- Redis与Memcached的区别
- MySQL中replace into语句的用法详解
- MySQL学习20:运算符与函数之自定义函数
- log4j中debug模式下输出sql
- 学习MVC操作oracle时报错java.lang.AbstractMethodError
- mysql 主从复制配置详解
- MySQL数据库十大优化技巧
- MongoDB
- MySQL备份innodbackupex使用
- mysql 主从复制配置详解
- 数据库连接PreparedStatement
- Mysql逻辑模块组成
- 【DRP】将DRP物理模型导出SQL脚本
- 便签8-数据库登陆