SQLServer全文搜索

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:

全文搜索的核心引擎建立在Microsoft Full-Text Engine for SQL Server (MSFTESQL) 服务提供支持

使用全文搜索可以快速、灵活地为存储在 Microsoft SQL Server 数据库中的文本数据的基于关键字的查询创建索引。与仅适用于字符模式的 LIKE 谓词不同,全文查询将根据特定语言的规则对词和短语进行操作,从而针对此数据执行语言搜索

 Microsoft SQL Server 2005 中,全文搜索用于提供企业级搜索功能。由于在性能、可管理性和功能方面的显著增强,全文搜索可为任意大小的应用程序提供强大的搜索功能。

对大量非结构化的文本数据进行查询时,使用全文搜索获得的性能优势会得到充分的表现。对数百万行文本数据执行的 LIKE 查询可能需要花费几分钟时间才能返回结果;但对同样的数据,全文查询只需要几秒或更少的时间,具体取决于返回的行数。

可以对包含 charvarchar  nvarchar 数据的列创建全文索引。也可以对包含格式化二进制数据(如存储在 varbinary(max)  image 列中的 Microsoft Word 文档)的列创建全文索引。不能使用 LIKE 谓词来查询格式化的二进制数据

 

最简步骤:(以AdventureWorks数据库中的databaselog表中的event字段为例)

1、  启用全文索引:

use AdventureWorks 
exec sp_fulltext_database 'enable'

2、  全文索引是存储在指定的文件系统中的,而不是SQLServer中。

exec sp_fulltext_catalog 'Cat_Desc', 'create', 'f:\ft'

创建全文索引的目录

3、  对表创建全文索引

exec sp_fulltext_table 'databaselog', 'create', 'Cat_Desc',

'PK_DatabaseLog_DatabaseLogID'

在已有的表上根据已有的索引创建全文索引

 

4、  对表中的列添加全文索引

exec sp_fulltext_column 'databaselog', 'event', 'add'

 

5、  表启动完全填充

exec sp_fulltext_table 'databaselog', 'start_full'

 

6、  执行全文检索

select * from freetexttable(databaselog, event,'ALTER_TABLE');

 


    本文转自永春博客园博客,原文链接:

http://www.cnblogs.com/firstyi/archive/2007/04/29/732263.html ,如需转载请自行联系原作者


相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
6月前
|
SQL
SQLServer 中的WITH AS
SQLServer 中的WITH AS
24 0
|
10月前
sqlserver 多表关联更新
sqlserver 多表关联更新
94 0
|
12月前
|
SQL 数据库
1 SQL快速入门、查询(SqlServer)[郝斌SqlServer完整版]
系统数据库:master、model、msdb、tempdb【我们自定义数据库的管理维护运行都需要系统库支持】
94 0
|
SQL 存储 Go
sqlserver 学习问题总结
1.SQLSERVER 中GO的作用** go 向 SQL Server 实用工具发出一批 Transact-SQL 语句结束的信号。go是把t-sql语句分批次执行。(一步成功了才会执行下一步,即一步一个go) BEGIN 和 END 语句用于将多个 Transact-SQL 语句组合为一个逻辑块。在控制流语句必须执行包含两条或多条 Transact-SQL 语句的语句块的任何地方,都可以使用 BEGIN 和 END 语句。
171 0
|
索引
SqlServer 索引
SqlSever索引
6616 0
|
SQL 索引
SqlServer 正确使用索引
在SqlServer对于没有SARG(search argument/SARG)运算符的表达式,索引是没有用的,SqlServer对它们很难使用比较优化的做法。
4675 0