为全文搜索配置和管理非索引字和非索引字表

为了精简全文索引,SQL Server 提供了一种机制,用于去掉那些经常出现但对搜索无益的字符串。 这些去掉的字符串称为“非索引字”。 在索引创建期间,全文引擎将忽略全文索引中的非索引字。 也就是说全文查询将不搜索非索引字。

主题内容

  • 了解非索引字和非索引字表

  • 创建非索引字表

  • 在全文查询中使用非索引字表

  • 查看非索引字表和非索引字表的元数据

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

  • 从 SQL Server 2005 升级干扰词

了解非索引字和非索引字表

非索引字可以是在特定语言中具有含义的词,也可以是不具有语言含义的“标记”。 例如,在英语中,诸如“a”、“and”、“is”和“the”之类的词将被排除在全文索引之外,这是因为已经知道它们对搜索没有用处。

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

位置

Instructions

1

are

2

applicable

3

to

4

these

5

Adventure

6

Works

7

Cycles

8

models

9

分别在第 2、第 4 和第 5 个位置的非索引字“are”、“to”和“these”将被排除在全文索引之外。 但是会保留它们的位置信息,从而使短语中其他词的位置不受影响。

使用称为“非索引字表”的对象在数据库中管理非索引字。 “非索引字表”是一个由非索引字组成的列表,这些非索引字在与全文索引关联时会应用于该索引的全文查询。

[返回页首]

创建非索引字表

可使用下列任一方法创建非索引字表:

  • 在数据库中使用系统提供的非索引字表。 SQL Server 为每种支持的语言(即默认情况下与给定断字符关联的每种语言)都附带了一个包含最常用非索引字的系统非索引字表。 系统非索引字表包含所有支持语言的常用非索引字。 可以复制系统非索引字表并通过添加和删除非索引字来自定义自己的非索引字表。

    系统非索引字表安装在 Resource 数据库中。

  • 创建自己的非索引字表,然后针对您所指定的任何语言将非索引字添加到非索引字表中。 必要时,您还可以从您的非索引字表中删除非索引字。

  • 在当前服务器实例中使用任何其他数据库中的现有自定义非索引字表,然后根据需要添加和删除非索引字。

重要说明重要提示

仅在兼容级别为 100 时才支持 CREATE FULLTEXT STOPLIST、ALTER FULLTEXT STOPLIST 和 DROP FULLTEXT STOPLIST。 兼容级别为 80 和 90 时,将不支持这些语句。 不过,在所有兼容级别下,系统非索引字表将会自动与新的全文索引相关联。

创建非索引字表

在 Management Studio 中创建全文非索引字表

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

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

  3. 展开**“存储”,然后右键单击“全文非索引字表”**。

  4. 选择**“新建全文非索引字表”**。

  5. 指定非索引字表名称。

  6. (可选)将另外某人指定为非索引字表所有者。

  7. 从下列创建非索引字表的选项中选择一个:

    • 创建空非索引字表

    • 从系统非索引字表创建

    • 从现有全文非索引字表创建

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

  8. 单击“确定”。  

删除非索引字表

[返回页首]

在全文查询中使用非索引字表

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

创建全文索引并将非索引字表与其关联起来

将非索引字表与现有的全文索引关联起来或取消它们之间的关联

取消非索引字导致全文查询的布尔操作失败时产生的错误消息。

[返回页首]

查看非索引字表和非索引字表的元数据

查看非索引字表的所有非索引字

获取有关当前数据库中所有非索引字表的信息

查看断字符的词汇切分结果、同义词库和非索引字表组合

[返回页首]

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

向非索引字表中添加非索引字或从中删除非索引字

使用 Management Studio 更改非索引字表中的非索引字

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

  2. 展开**“数据库”**,然后展开数据库。

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

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

  5. 全文非索引字表属性对话框中:

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

    2. 如果对选定的操作启用了**“非索引字”**文本框,请输入一个非索引字。 该非索引字必须是唯一的,也就是说,在针对所选语言的此非索引字表中还不存在该非索引字。

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

  6. 单击“确定”。  

[返回页首]

从 SQL Server 2005 升级干扰词

SQL Server 2005 干扰词已替换为非索引字。 从 SQL Server 2005 升级数据库后,将不再使用干扰词文件。 然而,干扰词文件存储在 FTDATA\FTNoiseThesaurusBak 文件夹中,您可以在以后更新或生成对应的非索引字表时使用它们。 有关将干扰词文件升级到非索引字表的信息,请参阅从 SQL Server 2005 升级全文搜索

[返回页首]