配置和管理全文搜索的停止词和停止词列表

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例

为了防止全文索引变得臃肿,SQL Server 数据库引擎 有一种机制,可以丢弃那些对搜索没有帮助的常见字符串。 这些被丢弃的字符串称为停用词。 在创建索引期间,全文引擎会从全文索引中排除停用词。 这意味着全文查询不会对停用词进行搜索。

条款 Description
非索引字 停用词可以是某种特定语言中具有含义的词。 例如,在英语中,诸 a如 、 andisthe 等词汇被排除在全文索引之外,因为它们已知对搜索无用。 非索引字也可以是具有语言意义的标记
停用词表 在数据库中,停用词通过使用称为“停用词列表”的对象来管理。 停用词表是停用词的列表,在与全文索引关联时,会应用于针对该索引的全文查询。

使用现有非索引字表

可以通过以下方式使用现有非索引字:

  • 在数据库中使用系统提供的非索引字表。 数据库引擎 自带一个系统屏蔽词表,包含每种支持语言最常用的屏蔽词,这些屏蔽词默认适用于与特定词断符相关的所有语言。 可以通过添加和删除非索引字来复制系统非索引字表并自定义副本。

    系统停止列表安装在 资源数据库中。

  • 在当前服务器实例中使用来自另一数据库的现有自定义停止列表,然后根据需要添加或删除停止词。

创建新的非索引字表

你可以用 Transact-SQL(T-SQL)或SQL Server Management Studio(SSMS)创建停止列表。

使用 Transact-SQL 创建新的非索引字表

使用 CREATE FULLTEXT STOPLIST

使用 SQL Server Management Studio 创建新的停止列表

  1. 在对象资源管理器中,展开服务器。

  2. 展开“数据库”,然后展开要在其中创建全文非索引字表的数据库。

  3. 展开 Storage,然后右键单击 Full-Text Stoplists

  4. 选择“新建全文停止列表”

  5. 输入新停用词列表的名称。

  6. 可选择将其他人指定为停用词列表所有者。

  7. 选择以下创建非索引字表选项之一:

    • 创建空停用词表

    • 根据系统停用词列表创建

    • 基于现有全文停用词表创建

    有关详细信息,请参阅新建全文非索引字表(常规页)

  8. 选择“确定”

在全文查询中使用停用词列表

若要在查询中使用停用词表,必须将其与全文索引相关联。 可以在创建全文检索时将非索引字表附加到全文检索中,也可以在以后更改索引来添加非索引字表。

任务 方法
创建一个全文索引,并将其与停止列表关联起来 使用 CREATE FULLTEXT INDEX
将停止列表与现有全文索引关联或取消关联 使用 ALTER FULLTEXT INDEX

在非索引字表中更改非索引字

你可以使用 Transact-SQL (T-SQL) 或 SQL Server Management Studio (SSMS) 修改停用列表中的非索引字。

使用 Transact-SQL 向停用词列表中添加停用词或从中删除停用词

使用 ALTER FULLTEXT STOPLIST

使用 SQL Server Management Studio 在停止词表中添加或删除停止词

  1. 在对象资源管理器中,展开服务器。

  2. 展开 数据库,然后展开该数据库。

  3. 展开“存储”,然后选择“全文非索引字表”

  4. 右键单击要更改其属性的非索引字表,然后选择“属性”。

  5. 在“全文停止列表属性”对话框中:

    1. “操作” 列表框中,选择下列操作之一: “添加非索引字”“删除非索引字”“删除所有非索引字”“清除非索引字表”

    2. 如果所选操作启用了 “停用词” 文本框,请输入一个停用词。 这个停字必须是独一无二的。 它不可能已经出现在你选择的语言的停止列表中。

    3. 如果对选定的操作启用了“全文语言”列表框,请选择一种语言。

  6. 选择“确定”

管理非索引字表及其使用情况

使用以下方法查看和管理停用列表。

任务 方法
查看非索引字表中的所有非索引字 使用 sys.fulltext_stopwords
获取有关当前数据库中所有停用列表的信息 sys.fulltext_stoplistssys.fulltext_stopwords
查看断字符、同义词库和非索引字表组合的标记化结果 sys.dm_fts_parser
如果停用词导致全文查询中的布尔运算失败,则禁止显示错误消息 使用服务器配置:转换干扰词

有关停用词位置的更多信息

尽管全文索引忽略非索引字的包含,但它确实会考虑它们的位置。 例如,考虑短语 Instructions are applicable to these Adventure Works Cycles models。 下表显示了短语中各个词的位置:

Word 位置
Instructions 1
are 2
applicable 3
to 4
these 5
Adventure 6
Works 7
Cycles 8
models 9

位于第2、4和第5位的停顿词 areto, , these 被排除在全文索引之外。 但是会保留它们的位置信息,从而使短语中其他词的位置不受影响。

从 SQL Server 2005 升级干扰词

SQL Server 2005 (9.x) 干扰词被非索引字替换。 从 SQL Server 2005 (9.x) 升级数据库后,将不再使用干扰词文件。 但是,干扰词文件存储在 FTDATA\FTNoiseThesaurusBak 文件夹中,你可以在以后更新或构建相应的停用列表时使用它们。 有关将干扰字文件升级到非索引字表的信息,请参阅升级全文搜索