CREATE FULLTEXT STOPLIST (Transact-SQL)
在当前数据库中创建新的全文非索引字表。
在 SQL Server 2008 及更高版本中,使用称为“非索引字表”的对象在数据库中管理停止词。 “非索引字表”是一个由非索引字组成的列表,这些非索引字在与全文索引关联时会应用于该索引的全文查询。 有关详细信息,请参阅为全文搜索配置和管理非索引字和非索引字表。
重要提示 |
---|
仅在兼容级别为 100 时才支持 CREATE FULLTEXT STOPLIST、ALTER FULLTEXT STOPLIST 和 DROP FULLTEXT STOPLIST。 兼容级别为 80 和 90 时,将不支持这些语句。 不过,在所有兼容级别下,系统非索引字表将会自动与新的全文索引相关联。 |
语法
CREATE FULLTEXT STOPLIST stoplist_name
[ FROM { [ database_name.]source_stoplist_name } | SYSTEM STOPLIST ]
[ AUTHORIZATION owner_name ]
;
参数
stoplist_name
非索引字表的名称。 stoplist_name 最多可以包含 128 个字符。 stoplist_name 在当前数据库中的所有非索引字表中必须是唯一的,并且符合标识符规则。创建全文索引时将使用 stoplist_name。
database_name
source_stoplist_name 指定的非索引字表所在的数据库的名称。 如果未指定,则 database_name 默认为当前数据库。source_stoplist_name
指定通过复制现有的非索引字表来创建新的非索引字表。 如果不存在 source_stoplist_name,或者数据库用户不具有正确的权限,CREATE FULLTEXT STOPLIST 将失败,并返回错误。 如果源非索引字表的停止词中指定的任何语言未在当前数据库中注册,CREATE FULLTEXT STOPLIST 将成功,但会返回警告且不会添加相应的停止词。SYSTEM STOPLIST
指定用默认存在于 Resource 数据库中的非索引字表创建新的非索引字表。AUTHORIZATION owner_name
指定拥有此非索引字表的数据库主体的名称。 owner_name 必须是当前用户所属的主体的名称,或当前用户必须对 owner_name 拥有 IMPERSONATE 权限。 如果未指定,则所有权授予当前用户。
注释
非索引字表的创建者也是其所有者。
权限
若要创建 STOPLIST,需要拥有 CREATE FULLTEXT CATALOG 权限。 非索引字表的所有者可显式授予对非索引字表的 CONTROL 权限,以允许用户添加和删除词,以及删除该非索引字表。
注意 |
---|
若要对全文索引使用非索引字表,需要拥有 REFERENCE 权限。 |
示例
A.创建新的全文非索引字表
下面的示例创建一个名为 myStoplist 的新的全文非索引字表。
CREATE FULLTEXT STOPLIST myStoplist;
GO
B.从现有的全文非索引字表复制全文非索引字表
下面的示例通过复制一个名为 Customers.otherStoplist 的现有 AdventureWorks 非索引字表来创建一个名为 myStoplist2 的新全文非索引字表。
CREATE FULLTEXT STOPLIST myStoplist2 FROM AdventureWorks.otherStoplist;
GO
C.从系统全文非索引字表复制全文非索引字表
下面的示例通过从系统非索引字表进行复制来创建一个名为 myStoplist3 的新全文非索引字表。
CREATE FULLTEXT STOPLIST myStoplist3 FROM SYSTEM STOPLIST;
GO
请参阅
参考
ALTER FULLTEXT STOPLIST (Transact-SQL)
DROP FULLTEXT STOPLIST (Transact-SQL)
sys.fulltext_stoplists (Transact-SQL)
sys.fulltext_stopwords (Transact-SQL)