SQL Server -- 从全文索引中去掉普通字符串
- 博客分类:
- 技术杂绘
SQL Server 2008引入了标识出那些对全文索引搜索无益的普通字符串的能力。这些无益的字符串被称为非索引字(SQL Server的早期版本中称为干扰词),并且包含在非索引字表中。非索引字表包含一个或多个非索引字,以及用来在全文索引中连接。SQL Server为所有支持的语言提供了包含普通非索引字的系统默认非索引字表。
使用CREATE FULLTEXT STOPLIST命令来创建你自定义的非索引字表。语法如下: 这个命令的参数在表6-6中有描述。
表6-6 CREATE FULLTEXT STOPLIST参数
在这个示例中,将创建新的、不是从既有的非索引字表复制而来的非索引字表(注意全文非索引字表语句必须以分号[;]来结束): 为了确认新非索引字表的细节,可以查询sys.full_text_stoplists系统目录视图: 这个查询返回: 创建完非索引字表之后,现在可以使用ALTER FULLTEXT STOPLIST命令来填充它。这个命令的语法如下: 这个命令的参数在表6-7中有描述。
表6-7 ALTER FULLTEXT STOPLIST参数 参数 描述 stoplist_name 指定新用户定义的非索引字表的名称 ADD 'stopword' 定义非索引字的字符串值。
最长可以添加64个字符 LANGUAGE language_term 定义与非索引字关联的语言
--可以是字符串(从sys.
syslan- guages中的别名)、
整数(LCID)或十六进制表示
(LCID的十六进制值) DROP 'stopword' LANGUAGE language_term 指定删除指定的语言下指定的非索引字 DROP ALL LANGUAGE language_term 删除指定语言下的所有非索引字 DROP ALL 指定从非索引字表中删除所有非索引字 在这个示例中,假定我为包含引用了SQL Server文档参考书的表生成索引。在这个例子中,术语"SQL"和"Server"在搜索的上下文中不是非常有用(几乎所有条目都会包含它)。因此在这个示例中,我将增加两个新的非索引字到之前创建的非索引字表中: 在增加两个新非索引字到非索引字表中之后,可以通过查询sys.fulltext_stopwords系统目录视图来验证这个列表: 这个查询返回: 在下一个查询中,我将演示将新非索引字表绑定到全文索引上: 可以使用sys.fulltext_indexs系统目录视图来确认绑定的非索引字表: 这个查询返回: 可以通过使用sys.dm_fts_parser动态管理视图来测试我的新非索引字是否可以被全文引擎识别。这个DMV的语法如下: 第一个参数query_string,是你可能会用在全文索引搜索中的查询字符串。lcid是地区标识符,stoplist_id是非索引字表的唯一ID(你可以从sys.fulltext_stoplists中检索)。accent_sensitivity参数的值可以是1或0,表示你的搜索是否区分重音。如下的查询使用前面创建的非索引字表测试搜索短语SQL Server 2008 Transact-SQL Recipes来演示这个DMV: 结果返回了每个关键字的列表,以及它们被视为何种类型(干扰字/非索引字或精确匹配): 正如你从结果中看到的,SQL和Server都被识别为干扰字(非索引字)。
在下一个查询中,演示从非索引字表中删除非索引字(就算非索引字表已经绑定到全文索引上也是可以的): 使用DROP FULLTEXT STOPLIST命令来删除非索引字表。但是要想删除它,必须先使用它从全文索引中对非索引字表解除绑定。这个技巧的最后一个查询演示了从全文索引中移除非索引字表的设置,然后删除非索引字表: 解析 这个技巧演示了如何通过创建用户定义且包含非索引字列表的非索引字表从全文索引中去掉普通字符串。使用CREATE FULLTEXT STOPLIST命令来创建非索引字表。在创建索引字表之后,就可以使用ALTER FULLTEXT STOPLIST来增加非索引字字符串到非索引字表中,或从非索引字表中移除非索引字字符串。使用sys.fulltext_stoplists和sys.fulltext_stopwords系统目录视图来确认设置。然后创建新表和全文目录,再通过指定WITH STOPLIST = TSQLRecipes创建使用了新的非索引字的新全文索引。可以通过使用sys.dm_fts_parser来测试非索引字表中的非索引字是否被恰当地忽略。使用带有SET STOPLIST的ALTER FULLTEXT INDEX从全文索引中移除非索引字表,随后是DROP FULLTEXT STOPLIST命令。
发表评论
-
.net正则基础
2012-07-06 09:46 570初学正则时,对于Regex类不熟悉,遇到问题不知道该用哪种 ... -
Android 桌面组件【app widget】 进阶项目②--心情记录器
2012-07-03 13:44 557本篇完成项目名称 ... -
ActionScript 3.0综合应用案例(图像识别+位图滤镜+Molehill)
2012-07-02 12:55 696本文是对ActionScript 3.0的一个综合应用案例 ... -
Popup窗口访问父窗口的方法以及相互传值
2012-07-02 12:55 847owner属性 此 IVisualElement 对象的 ... -
3D 视频墙 3D IMAGE/MEDIA GRID/WALL GALLERY
2012-07-02 12:55 704If you are interested with th ... -
第11课 spark基本类型
2012-07-02 12:55 479session11/src/Tester.mxml ... -
使用ItemRenderer为DropDownList定义下拉选项
2012-07-02 12:55 519首先新建一个ItemRenderer组件 flex/sp ... -
为什么用*? 为什么不用*?
2012-07-01 10:24 558离开RoR有一段时间了,本来不想提些负面的东西,不过JE猎 ... -
谈谈我对未来的想法吧
2012-07-01 10:24 498来总行珠海研发中 ... -
实战 OpenLaszlo 与 db4o
2012-07-01 10:24 441本文于去年年底完 ... -
java面笔试总结
2012-07-01 10:24 5722010、10、12 湖南华诺集团面试题集 1、D ... -
PureMVC之通信
2012-07-01 10:24 696PureMVC的通信并不采用Flash的EventDisp ... -
AS3 库资源 很多非常有用的类库 - Qzone日志
2012-06-30 16:50 489AS3 库资源 很多非常有用的类库 - Qzone日志 20 ... -
flex 联机游戏开发 - 四国军棋游戏:(一)引子
2012-06-30 16:50 720flex 联机游戏开发 - 四国军棋游戏:(一)引子 201 ... -
使用FLEX 和 Actionscript开发FLASH 游戏2-2
2012-06-30 16:50 474使用FLEX 和 Actionscript开发FLASH 游戏 ... -
基于Flash的即时通讯开发思路
2012-06-30 16:49 804基于Flash的即时通讯开 ... -
非常有用的类库 APIs、Libs、Components
2012-06-30 16:49 659非常有用的类库 APIs、Libs、Components 2 ...
相关推荐
使用flink-connector-sqlserver-cdc 2.3.0把数据从SQL Server实时同步到MySQL中。
java 连接sqlserver使用的java-sqlserver-connect.jar包。 java连接sqlserver使用的jar包,包含jre7、jre8两种使用 sqlserver.ja
SQL-Server-2008-数据库还原到SQL-Server-2012.docx
资源名称:MS-SQL SERVER从字符串中搜索符合指定范围的数值资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
其中包含Sqoop将SqlServer文件导入HDFS文件的所有jar包
SQL-Server-2008-数据库还原到SQL-Server-2012.doc
sqlserver中根据某个字符切割字符串函数,比如根据逗号切割字符串,结果返回的是一个表值函数,这个函数返回结果字段包含Id和Value,Id为序号,Value为切割后的值
SQLServer数据库中创建字符串截取功能(Split),调用方法: Split(string,str)
sqlserver-dts简介,sqlserver-dts简介
sqlserver连接字符串大全,基本涵盖全了
sql server拼接字符串查询语句。 普通拼接字符串和拼接某一列的所有值。
sqlserver-kit, for SQL Server 数据库的有用链接脚本工具和最佳实践 SQL Server 套件 for SQL Server 数据库的有用链接。脚本。工具和最佳实践 table-内容repo 文件夹和文件SQL Server 网络资源BIML资源和 blogger...
sqlserver connector for apache hadoop
SQLServer逗号分隔的字符串转换成表
server-2017-integration-services-cookbook.pdf sql-server-2017-integration-services-cookbook.pdf sql-server-2017-integration-services-cookbook.pdf sql-server-2017-integration-services-cookbook.pdf sql-...
SQL SERVER-2008从入门到精通
python库,解压后可用。 资源全名:soda_sql_sqlserver-2.1.0b10-py3-none-any.whl
将sql sqlser 日期类型转化成各种格式的字符串。
物流管理系统毕业设计——基于Visual-C++-6.0和SQL-Server-2000编写.pdf物流管理系统毕业设计——基于Visual-C++-6.0和SQL-Server-2000编写.pdf物流管理系统毕业设计——基于Visual-C++-6.0和SQL-Server-2000编写....
SQL Server查询中的特殊字符处理 我们都知道SQL Server查询过程中,单引号“'”是特殊字符,所以在查询的时候要转换成双单引号“''”。 但这只是特殊字符的一个,在实际项目中,发现对于like操作还有以下特殊字符:...