SQL Server全文搜索

SQL Server全文搜索

看这篇文章之前请先看一下下面我摘抄的全文搜索的MSDN资料,基本上MSDN上关于全文搜索的资料的我都copy下来了

并且非常认真地阅读和试验了一次,并且补充了一些SQL语句,这篇文章本人抽取了一些本人自认为是重点的出来

并且加入了一些自己的内容,补充MSDN上没有的和整理了网上关于全文搜索的资料

至于全文搜索的性能注意事项,大家可以看我copy下来的文章

文章地址:

网上另一篇说全文搜索的也比较详细

SQL Server 全文目录相关 地址:

至于什么是全文搜索我就不说了,网上文章非常多,但是这些文章感觉总结和归纳不全,只是建立一下全文索引,但是并没有深入一些或者再整理一下





(v=SQL.105).aspx
(v=SQL.105).aspx

全文搜索的架构

先上MSDN的一幅图片

SQL Server全文搜索

我画了一幅简单的图

SQL Server全文搜索

其实全文搜索技术也有些人叫全文搜索或者叫全文索引,不过两种叫法本人都觉得是对的

MSDN中对于普通SQLSERVER和全文索引的区别

全文索引

普通 SQL Server 索引


每个表只允许有一个全文索引。

 

每个表允许有多个普通索引。

 

将数据添加到全文索引的操作称为“填充”,可以通过计划或特定请求来请求填充,也可以在添加新数据时自动填充。

 

当插入、更新或删除作为其基础的数据时自动更新。

 

在同一个数据库内分组为一个或多个全文目录。

 

不分组。

 

在一张表中建立了全文索引后,你不会看到数据表中会有全文索引页面,因为MSDN说得很清楚,

因为全文索引的行以压缩格式存储在磁盘的文件系统里,以优化磁盘的使用,并且这些数据会以二进制数据的形式存储。

SQL Server全文搜索

创建全文目录的时候会有一个选项叫你选择目录位置,全文索引就存放在这个位置

当你查询全文索引列的时候,SQLSERVER就会扫描全文目录,去找你需要查询的记录,所以当你查看执行计划的时候会看到一个执行计划“远程扫描

远程扫描基本上占了大头

SQL Server全文搜索

全SQL建立全文搜索

在网上看到很多文章都是用SSMS来建立全文索引,本人想用全SQL的方式建立全文索引

(1)先在D盘建立一个文件夹fulltext

建立全文索引的方式有两种

1 USE [pratice] 2 GO 3 4 5 6 --创建全文索引的方式1: 7 8 -------------开启全文索引和创建全文索引目录 全文目录创建的路径是D:\fulltext 9 --fulltext_pratice是自己自定义的全文目录名称 10 EXEC [sys].[sp_fulltext_database] @action = \'enable\' -- varchar(20) 11 12 --如果数据库中已存在全文目录fulltext_pratice要先drop掉 13 --EXEC [sys].[sp_fulltext_catalog] @ftcat = \'fulltext_pratice\', -- sysname 14 -- @action = \'drop\' -- varchar(20) 15 16 EXEC [sys].[sp_fulltext_catalog] @ftcat = \'fulltext_pratice\', -- sysname 17 @action = \'create\', -- varchar(20) 18 @path = N\'D:\fulltext\' -- nvarchar(101)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwwjfx.html