配置和管理断字符和词干分析器以便搜索

断字符和词干分析器用于对所有全文索引数据执行语言分析。 语言分析将涉及到查找词边界(断字)和组合动词(词干分析)。 断字符和词干分析器是特定于语言的,并且各语言的语言分析规则也各不相同。 对于给定语言,“断字符”通过根据语言的词法规则确定词的边界位置来标识各个词。 每个词(也称为“标记”)使用压缩表示形式插入全文索引以减少其大小。 “词干分析器”根据该语言的规则生成特定词的变形形式(例如,“running”、“ran”和“runner”是单词“run”的不同形式)。

使用特定于语言的断字符,能够使得为该语言生成的词更加准确。 如果断字符用于整个语系而不是特定的子语言,将使用该语系中的主要语言。 例如,使用法语断字符来处理加拿大法语文本。 如果某一特定语言没有可用的断字符,将使用非特定语言断字符。 使用非特定语言断字符时,词将在非特定语言字符(如空格和标点符号)处断开。

本主题内容

  • 注册断字符

  • 设置默认全文语言选项

  • 为索引列选择语言

  • 获取有关断字符的信息

  • 排除断字超时错误

  • 理解新断字符的影响

注册断字符

要想使用某种语言的断字符,就必须为其进行注册。 对于已注册的断字符,关联的语言资源(词干分析器、干扰词(非索引字)和同义词库文件)也将可用于全文索引和查询操作。 若要查看当前在 SQL Server 中注册了断字符的语言列表,请使用以下 Transact-SQL 语句:

SELECT * FROM sys.fulltext_languages

如果您添加、删除或更改了断字符,则需要刷新为全文索引和查询而支持的 Microsoft Windows 区域设置标识符 (LCID) 列表。 有关详细信息,请参阅查看或更改注册的筛选器和断字符

设置默认全文语言选项

对于 SQL Server 的本地化版本,SQL Server 安装程序将把 default full-text language 选项设置为服务器的语言(如果存在合适的匹配项)。 对于 SQL Server 的非本地化版本,default full-text language 选项为“英语”。

创建或修改全文索引时,可以为每个全文索引列指定不同的语言。 如果未指定列的语言,默认值是配置选项 default full-text language 的值。

注意注意

在单个全文查询函数子句中列出的所有列必须使用同一语言,除非在查询中指定了 LANGUAGE 选项。 所查询的用于全文索引列的语言确定了对全文查询谓词(CONTAINSFREETEXT)和函数(CONTAINSTABLEFREETEXTTABLE)的参数执行的语言分析。

为索引列选择语言

创建全文索引时,建议为每个索引列都指定一种语言。 如果未为列指定语言,则将使用系统默认语言。 某列的语言确定使用什么断字符和词干分析器对该列创建索引。 另外,该语言的同义词库文件将由针对相应列的全文查询使用。

如果要选择用于创建全文索引的列语言,有几个事项需要注意。 这些注意事项均与全文引擎如何对文本进行词汇切分再编制其索引有关。 有关详细信息,请参阅创建全文索引时选择语言

查看列的断字符语言

获取有关断字符的信息

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

返回有关已注册断字符的信息

排除断字超时错误

在许多情况下可能会出现断字超时错误。 有关这些情况及如何针对每种情况做出反应的信息,请参阅 MSSQLSERVER_30053

理解新断字符的影响

每个版本的 SQL Server 通常都包括新的断字符,这些断字符与早期断字符相比具有更好的语言规则并且更加准确。 新断字符的行为可能与从以前版本的 SQL Server 导入的全文索引中的断字符行为稍有不同。 如果全文目录是在数据库升级到 SQL Server 的当前版本时导入的,这一点将非常重要。 该全文目录中全文索引使用的一种或多种语言现在可能与新断字符关联。 有关详细信息,请参阅从 SQL Server 2005 升级全文搜索

有关所有断字符的完整列表,请参阅 sys.fulltext_languages (Transact-SQL)

请参阅

参考

ALTER FULLTEXT INDEX (Transact-SQL)

CREATE FULLTEXT INDEX (Transact-SQL)

sp_fulltext_service (Transact-SQL)

sys.fulltext_languages (Transact-SQL)

概念

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

从 SQL Server 2005 升级全文搜索