了解语言资源组件

语言资源由断字符和词干分析器组成,这些断字符和词干分析器将索引生成和查询功能扩展到新语言和区域设置。 Word在索引创建和查询期间使用断字符。 词干分析器仅用于查询。 Windows 搜索使用语言资源 DLL 绑定到特定语言区域设置的 IWordBreakerIStemmer 实现。

本主题的组织方式如下:

关于语言资源

Windows 搜索使用筛选器 (IFilter 接口) 和 ILoadFilter 的实现,以本机格式访问文档。 IFilter 组件从文档中提取文本内容、属性和格式。 IFilter 标识它正在筛选的文档的区域设置。 索引组件为该区域设置调用相应的断字符。 如果没有可用,索引组件将调用中性断字符。 断字符从 IFilter 接收 Unicode 字符的输入流,断字符分析以生成单个单词和短语。 断字符还规范化日期和时间格式。 索引器通过将单词转换为全部大写字母来规范化断字符生成的单词。 索引器将大写单词保存到全文索引,但为该区域设置标识的干扰词除外。

下表列出了句子“图 1 说明了在索引创建过程中 Windows 搜索的语言资源的作用”的操作和相应结果。

操作 生成的文本
原始文本 图 1 说明了在索引创建过程中 Windows 搜索的语言资源的作用。
Filtering 图 1 说明了在索引创建过程中 Windows 搜索的语言资源的作用。
断字 图, 1, 说明, 角色, 语言, 资源, for, Windows, 搜索, 期间, 索引, 创建, 进程, EOS
标准化 图, 1, 说明, , 角色, 的, 语言, 资源, WINDOWS, 搜索, 期间, , 索引, 创建, 进程
干扰词删除 图, 说明, 角色, 语言, 资源, WINDOWS, 搜索, 期间, 索引, 创建, 过程
保存到全文索引 图, 说明, 角色, 语言, 资源, WINDOWS, 搜索, 期间, 索引, 创建, 过程

 

Word断路器和词干分析器用于在查询时扩展 FREETEXT 查询。 除非将 LCID () 的语言代码标识符作为查询参数传递,否则查询的区域设置是默认区域设置。 查询组件对查询的 WHERE 子句中列出的查询词调用相应的断字符。 例如,如果查询的 WHERE 子句包含“FREETEXT (苹果、橙子和梨) ”,则断字符接收文本“apples、oranges 和 pears”。如果查询 WHERE 子句使用 CONTAINS 全文谓词,则断字符的文本输出将规范化。 否则,查询组件会将断字符标识的每个单词传递给该语言和区域设置的相应词干分析器。 词干分析器为该词生成一个替代形式列表(或“已转折”形式)。 查询组件规范化展开的查询词列表并删除干扰词。

下表列出了查询“apples、oranges 和 pears”的操作和相应结果。

操作 生成的文本
原始文本 苹果、橙子和梨
断字 苹果,橙子,和,梨,EOS
词干 苹果,苹果,橙子,橙子,橙子,和,梨,梨
标准化 APPLE、APPLES、ORANGEY、ORANGEY、ORANGES 和、PEAR、PEARS
干扰词删除 APPLE、APPLES、ORANGEY、ORANGEY、ORANGES、PEAR、PEARS
展开的查询词列表 APPLE、APPLES、ORANGEY、ORANGEY、ORANGES、PEAR、PEARS

 

展开的查询词会增加查询找到与原始查询意向匹配的文档的可能性。 断字符或词干分析器在查询时生成的文本不会存储在磁盘上。

断字

中断Word是将文本分离为单独的文本标记或单词。 许多语言(尤其是使用罗马字母表的语言)都有一组单词分隔符, (如空格) 和标点符号,用于识别单词、短语和句子。 Word断路器必须依靠准确的语言启发法来提供可靠和准确的结果。 对于基于字符的编写或基于脚本的字母表系统而言,Word中断更为复杂,其中单个字符的含义取决于上下文。 有关可能影响断字符实现的语言注意事项的详细信息,请参阅 语言和 Unicode 注意事项

词干

Windows 搜索在查询时专门应用词干分析器,以便为 FREETEXT 和属性查询中的字词生成其他字词窗体。 词干分析器执行形态分析,并应用语法规则来生成单词的替代或转换形式列表。 替代形式通常具有相同的词干或基形式。 通过为单词生成拐点形式,索引服务返回与查询在统计上更相关的查询结果。 例如,针对“游泳见面”的全文查询将匹配包含“游泳、游泳、游泳、游泳、游泳”、“swum”或“meet、meet's、meets、meets'、meeting、meet”和这些术语的组合的文档。

某些语言要求在标准拐点和变体拐点的索引时间和查询时间生成拐点词。 在这种情况下,词干分解发生在断字符组件中,实际词干分析器中的词干分解工作最少。 例如,日语断字符在索引创建和查询期间执行词干分析,使查询能够查找搜索词的不同拐点形式。

标准化

所有语言的文档都存储在单个索引中。 尽管单词和语言规则差异很大,但存在一些注意事项,例如数字、日期和时间,在所有断字符中一致地处理。 有关可能影响断字符实现的规范化注意事项的详细信息,请参阅 Surface 窗体规范化

干扰词

干扰词(也称为非索引词)是不是内容重要指标的字词。 索引服务从查询词和全文索引中包含的内容中删除干扰词。 偏移量是文档中或查询词列表中的单词出现的情况。 文档或查询中干扰词的偏移量记录为空白。 删除干扰词可避免不必要的索引增长,从而提高查询性能。 它还提高了查询结果的相关性。 你可以将 Windows 搜索配置为对特定语言使用干扰词列表。 为该语言调用断字符时,将使用这些列表。 例如,英语中的“the”经常出现,以至于它作为唯一键的值很小。 “The”位于干扰词列表中,未写入内容索引,并且如果查询,则不返回任何结果。

干扰词充当短语查询中的占位符。 包含文本“wag the dog”的文档存储在索引中,其中“wag”位于第 1 次,而“dog”则存储在第 3 处。 短语查询“wag dog”不匹配,但短语查询“wag a dog”不匹配,因为事件信息匹配。 短语“wag purple dog”不匹配,因为在出现 2 的索引中找不到“紫色”。 但是,查询“wag the dog”会返回包含“wag 紫色狗”的文档,因为无法有效地确定文档在“wag”和“dog”之间是否有非干扰词。

扩展语言资源

实现Word断路器和词干分析器

语言和 Unicode 注意事项

语言资源和最佳做法疑难解答