适用于: yes-img-13  2013  yes-img-16  2016  yes-img-19  2019  yes-img-se  Subscription Edition  no-img-sop  SharePoint in Microsoft 365

自定义词典是一个文件,管理员创建该文件来指定特定语言的分词系统在索引和查询时应将其视为不可分割的令牌。自定义词典文件不随产品一起提供。您必须为要修改其分词系统行为的每种语言创建单独的自定义词典。

 备注

给定语言的自定义词典适用于服务器场中的所有 Search Service 应用程序。

本文内容:

  • 使用自定义词典的原因

  • 创建自定义词典的规则

  • 创建自定义词典

  • 将自定义词典复制到每台应用程序服务器

  • 停止然后重新启动 SharePoint Server Search 14 服务

  • 执行完全爬网

  • 支持的语言

使用自定义词典的原因

要了解是否必须具有自定义词典以及自定义词典应包含哪些条目,必须了解分词系统的行为。索引系统对已爬网内容编制索引时,将使用分词系统来拆分令牌,并且查询处理器在查询中也使用分词系统。在每种情况下,如果存在支持所用分词系统的语言和方言的自定义词典,则搜索系统将在确定是否为单词使用分词系统之前在自定义词典中查找该单词。如果自定义词典中不存在该单词,则分词系统将执行其通常的操作,结果可能将一个令牌拆分为多个令牌。如果自定义词典中存在该令牌,则分词系统不会对该令牌执行任何操作。以下两个示例描述了典型的分词系统行为,以及自定义词典中的条目可能会对该行为产生怎样的影响。

  • 分词系统可能会紧接在 (&) 之前和之后破坏令牌"IT T",从而导致三个标记 & "IT"、"&"和"T"。 但是,如果令牌"IT T"位于与使用的分词系统语言相同的自定义词典中,则分词系统不会在爬网时或查询 (中断该令牌 &) 。 如果"IT T"位于自定义词典中,并且文档不包含 & "IT"或"T"但包含 & "IT T",则包含"IT"或"T"但不包含"IT & T"的查询不会在结果集返回该文档。

  • 分词系统可能会对诸如化学文摘服务 (CAS) 注册编号之类的术语产生影响。例如,分词系统通常会将出现在连字符或其他特殊字符前后的单个数字与编号的其余部分拆分开。例如,氧的 CAS 注册编号为 7782-44-7。经过分词系统处理后,此 CAS 注册编号被拆分为三个部分:数字 7782、44 和 7。通过将出现在文档集中的这些 CAS 注册编号添加到自定义词典,能使搜索系统对每个编号编制索引,而不会将其拆分为单独的部分。

规范化和同义词库文件

通常由分词系统应用的命名实体规范化(如日期规范化)不会应用于自定义词典中的术语。 而是将自定义词典中所有术语视为匹配项。 如果同义词库文件中有单词或数字,这一点尤其重要。 例如,如果 CAS 注册表号 7782-44-7 是同义词库中扩展集的一部分,并且分词系统将连字符处的数字分解为三个单独的数字,则该数字是一部分的扩展集可能无法正常工作。 在这种情况下,将 CAS 注册表号 7782-44-7 添加到相应语言的自定义词典可解决此问题。 有关如何使用同义词库文件的信息,请参阅在 SharePoint Server 中创建和部署同义词库

创建自定义词典的规则

自定义词典是一个 Unicode 格式的文件,其中的各个条目必须位于单独的行中,由回车 (CR) 和换行 (LF) 分隔。向自定义词典中添加条目时,请考虑以下规则,以避免产生意外结果:

  • 条目不区分大小写。

  • 不能使用管道 (|) 字符。

  • 不能使用空格。

  • 数字符号 () 不能在条目的开头使用,但可以在条目内或 # 结尾使用。

  • 除了前面提到的管道字符、数字记号字符和空格字符外,任何字母数字字符、标点、符号和分隔字符均有效。

  • 条目的最大长度为 128 个 (Unicode) 字符。

下表显示了支持的条目和不支持的条目的示例。

表 1 – 自定义词典文件支持的条目和不支持的条目示例

支持 不支持
dogfood dog food
3# #3
For#sale 促销 |
ASP.NET  
IT & T  
(2-Methoxymethylethoxy) propanol  
34590-97-8  
C7H1603  

自定义词典中条目数的最大限制为 10,000。 没有可用于更改此限制的设置。 但是,我们建议自定义词典文件的总文件大小不超过 2 GB (GB) 。 实际上,我们建议您将条目数限制为几千个。

创建自定义词典

使用下面的过程来创建自定义词典。

创建自定义词典

  1. 确认执行此过程的用户帐户是本地计算机上 Administrators 组的成员。

  2. 登录到爬网服务器。

  3. 在文本编辑器中打开一个新文件。

    根据上文的创建自定义词典的规则中所述的规则,在自定义词典中键入所需的单词。

  4. 在“文件”菜单上单击“另存为”。

  5. 在“保存类型”列表中,选择“所有文件”。

  6. 在“编码”列表中,选择“Unicode”。

  7. 在“文件名”框中,采用以下格式键入文件名:Custom NNNN.lex,其中“Custom”是原义字符串,NNNN 是为其创建自定义词典的语言的四位数的十六进制代码,lex 是文件扩展名。 有关支持的语言和方言的有效文件名的列表,请参阅下文中的支持的语言。

  8. 在“保存位置”列表中,浏览至包含分词系统的文件夹。 默认情况下,此文件夹是 \ \ SharePoint Server 2010 的 %ProgramFiles% Microsoft Office Servers 14.0 \ Bin、Microsoft Office \ \ Server \ 2013 的 %ProgramFiles% SharePoint Microsoft Office Servers 15.0 Bin 和 %ProgramFiles% \ Microsoft Office Servers\16.0 \SharePoint Server 2016 和 SharePoint Server 2019。

     备注

    仅当自定义词典文件存储在本地文件系统上的此文件夹中时方可使用。如果它们只存储在 SharePoint 网站等其他位置,则无法使用。

  9. 单击“保存”。

  10. 如果服务器场中没有其他爬网服务器或查询服务器,请转到停止然后重新启动 SharePoint Server Search 14 服务。否则,请转到下一过程“将自定义词典复制到服务器场中的每台应用程序服务器”。

将自定义词典复制到每台应用程序服务器

服务器场中的每台应用程序服务器都必须有自定义词典的一个副本。

将自定义词典复制到每个应用程序

  1. 验证执行此过程的用户帐户是服务器场中的每台应用程序服务器(即每台爬网服务器或查询服务器)上的 Administrators 组的成员。

  2. 在服务器场中的每台应用程序服务器上,将新自定义词典文件复制到包含分词系统的文件夹。 默认情况下,此文件夹是 \ \ SharePoint Server 2010 的 %ProgramFiles% Microsoft Office Servers 14.0 \ Bin、Microsoft Office \ \ Server \ 2013 的 %ProgramFiles% SharePoint Microsoft Office Servers 15.0 Bin 和 %ProgramFiles% \ Microsoft Office Servers\16.0 \SharePoint Server 2016 和 SharePoint Server 2019。

     备注

    仅当自定义词典文件存储在本地文件系统上的此文件夹中时方可使用。如果它们只存储在 SharePoint 网站等其他位置,则无法使用。

在每个应用程序服务器上停止SharePoint Server Search 14/15/16 服务并重新启动该服务

对于 SharePoint Server 2010) ,必须重新启动 SharePoint Server Search 14 (、SharePoint Server Search 15 (for SharePoint Server 2013) 或 SharePoint Server Search 16 (for SharePoint Server 2016 和 SharePoint Server 2019) 服务。

 重要

不要使用管理中心中的“服务器上的服务”页来停止和启动该服务,因为这样做会移除该服务并删除索引和关联的配置。应使用下列步骤。

在每台应用程序服务器上停止SharePoint Server Search 14/15/16 服务并重新启动该服务

  1. 确认执行此过程的用户帐户是本地计算机上 Administrators 组的成员。

  2. 在“开始”菜单上,指向“所有程序”,指向“管理工具”,然后单击“服务”。

  3. 右键单击 SharePoint Server Search 14 (for SharePoint Server 2010 ) 、SharePoint Server Search 15 (for SharePoint Server 2013) 或 SharePoint Server Search 16 (for SharePoint Server 2016 和SharePoint Server 2019) 服务,然后单击"属性 "。 将显示 "属性 "对话框。

  4. 单击“停止”。该服务停止后,单击“启动”。

  5. 确保“启动类型”未设置为“禁用”。

  6. 为服务器场中的每台应用程序服务器(即每台爬网服务器和每台查询服务器)重复此过程。

执行完全爬网

若要将自定义词典应用于内容索引,必须对包含已添加到自定义词典的令牌的内容执行完全爬网。 有关执行完全爬网的信息,请参阅在SharePoint Server 中管理爬网

支持的语言

下表指明了 Server 2010 支持其SharePoint的语言和方言。 不能为中性语言分词系统创建自定义词典。 该表包含每种支持的语言和方言的语言代码标识符 (LCID) 和语言十六进制代码。 十六进制代码中的前两位数字表示方言,后两位数字表示语言。 对于没有为单独的方言提供单独的分词系统的语言,语言十六进制代码中的前两位数字始终为零。

表 2 - 支持的语言

语言/方言 LCID 语言十六进制代码
阿拉伯语 1025 0001
孟加拉语 1093 0045
保加利亚语 1026 0002
加泰罗尼亚语 1027 0003
克罗地亚语 1050 001a
丹麦语 1030 0006
荷兰语 1043 0013
英语 1033 0009
法语 1036 000c
德语 1031 0007
古吉拉特语 1095 0047
希伯来语 1037 000d
印地语 1081 0039
冰岛语 1039 000f
印度尼西亚语 1057 0021
意大利语 1040 0010
日语 1041 0011
卡纳达语 1099 004b
拉脱维亚语 1062 0026
立陶宛语 1063 0027
Malay 1086 003e
马拉雅拉姆语 1100 004c
马拉地语 1102 004e
Norwegian_Bokmaal 1044 0414
葡萄牙语 2070 0816
Portuguese_Braz 1046 0416
旁遮普语 1094 0046
罗马尼亚语 1048 0018
俄语 1049 0019
Serbian_Cyrillic 3098 0c1a
Serbian_Latin 2074 081a
斯洛伐克语 1051 001b
斯洛文尼亚语 1060 0024
西班牙语 3082 000a
瑞典语 1053 001d
泰米尔语 1097 0049
泰卢固语 1098 004a
乌克兰语 1058 0022
乌尔都语 1056 0020
越南语 1066 002a