SQL Server 2008引入了标识出那些对全文索引搜索无益的普通字符串的能力。这些无益的字符串被称为非索引字(SQL Server的早期版本中称为干扰词),并且包含在非索引字表中。非索引字表包含一个或多个非索引字,以及用来在全文索引中连接。SQL Server为所有支持的语言提供了包含普通非索引字的系统默认非索引字表。
使用CREATE FULLTEXT STOPLIST命令来创建你自定义的非索引字表。语法如下:
- CREATE FULLTEXT STOPLIST stoplist_name
- [ FROM { [ database_name. ] source_
stoplist_name } | SYSTEM STOPLIST ]- [ AUTHORIZATION owner_name ];
这个命令的参数在表6-6中有描述。
表6-6 CREATE FULLTEXT STOPLIST参数
在这个示例中,将创建新的、不是从既有的非索引字表复制而来的非索引字表(注意全文非索引字表语句必须以分号[;]来结束):
- CREATE FULLTEXT STOPLIST TSQLRecipes;
为了确认新非索引字表的细节,可以查询sys.full_text_stoplists系统目录视图:
- SELECT stoplist_id,name,principal_id
- FROM sys.fulltext_stoplists
这个查询返回:
- stoplist_id name principal_id
- 5 TSQLRecipes 1
创建完非索引字表之后,现在可以使用ALTER FULLTEXT STOPLIST命令来填充它。这个命令的语法如下:
- ALTER FULLTEXT STOPLIST stoplist_name
- { ADD 'stopword' LANGUAGE language_term
- | DROP
- {
- 'stopword' LANGUAGE language_term
- | ALL LANGUAGE language_term
- | ALL };
这个命令的参数在表6-7中有描述。
表6-7 ALTER FULLTEXT STOPLIST参数
参数 |
描述 |