适用于:2013
2016
2019
Subscription Edition
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 | For|sale |
ASP.NET | |
IT&T | |
() 丙醇 | |
34590-97-8 | |
C7H1603 |
自定义字典中条目数的最大限制为 10,000。 没有可用于更改此限制的设置。 但是,我们建议自定义字典文件的总文件大小不要超过 2 GB (GB) 。 实际上,建议将条目数限制为几千个。
创建自定义词典
使用下面的过程来创建自定义词典。
创建自定义词典
确认执行此过程的用户帐户是本地计算机上 Administrators 组的成员。
登录到爬网服务器。
在文本编辑器中打开一个新文件。
根据上文的创建自定义词典的规则中所述的规则,在自定义词典中键入所需的单词。
在“文件”菜单上单击“另存为”。
在“保存类型”列表中,选择“所有文件”。
在“编码”列表中,选择“Unicode”。
在“文件名”框中,采用以下格式键入文件名:CustomNNNN.lex,其中“Custom”是原义字符串,NNNN 是为其创建自定义词典的语言的四位数的十六进制代码,lex 是文件扩展名。 有关支持的语言和方言的有效文件名的列表,请参阅下文中的支持的语言。
在“保存位置”列表中,浏览至包含分词系统的文件夹。 默认情况下,此文件夹为 %ProgramFiles%\Microsoft Office Server\14.0\Bin for SharePoint Server 2010、%ProgramFiles%\Microsoft Office Server\15.0\Bin for SharePoint Server 2013 和 %ProgramFiles%\Microsoft Office Servers\16.0\Bin for SharePoint Server 2016 和 SharePoint Server 2019。
注意
仅当自定义词典文件存储在本地文件系统上的此文件夹中时方可使用。 如果它们只存储在 SharePoint 网站等其他位置,则无法使用。
单击保存。
如果服务器场中没有其他爬网服务器或查询服务器,请转到停止然后重新启动 SharePoint Server Search 14 服务。 否则,请转到下一过程“将自定义词典复制到服务器场中的每台应用程序服务器”。
将自定义词典复制到每台应用程序服务器
服务器场中的每台应用程序服务器都必须有自定义词典的一个副本。
将自定义词典复制到每个应用程序
验证执行此过程的用户帐户是服务器场中的每台应用程序服务器(即每台爬网服务器或查询服务器)上的 Administrators 组的成员。
在服务器场中的每台应用程序服务器上,将新自定义词典文件复制到包含分词系统的文件夹。 默认情况下,此文件夹为 %ProgramFiles%\Microsoft Office Server\14.0\Bin for SharePoint Server 2010、%ProgramFiles%\Microsoft Office Server\15.0\Bin for SharePoint Server 2013 和 %ProgramFiles%\Microsoft Office Servers\16.0\Bin for SharePoint Server 2016 和 SharePoint Server 2019。
注意
仅当自定义词典文件存储在本地文件系统上的此文件夹中时方可使用。 如果它们只存储在 SharePoint 网站等其他位置,则无法使用。
停止并重启每个应用程序服务器上的 SharePoint Server 搜索 14/15/16 服务
您必须重启 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) 服务。
重要
请勿使用管理中心中的“服务器上的服务”页来停止和启动服务。 这样做会删除服务并删除索引和关联的配置。 请改为执行以下步骤。
停止并重启每个应用程序服务器上的 SharePoint Server 搜索 14/15/16 服务
确认执行此过程的用户帐户是本地计算机上 Administrators 组的成员。
在“开始”菜单上,指向“所有程序”,指向“管理工具”,然后单击“服务”。
右键单击 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) 服务,然后单击“属性”。 此时将显示 “属性 ”对话框。
单击“停止”。 该服务停止后,单击“启动”。
确保“启动类型”未设置为“禁用”。
为服务器场中的每台应用程序服务器(即每台爬网服务器和每台查询服务器)重复此过程。
执行完全爬网
若要将自定义词典应用于内容索引,必须对包含已添加到自定义词典的令牌的内容执行完全爬网。 有关执行完全爬网的信息,请参阅 在 SharePoint Server 中管理爬网。
支持的语言
下表指示 SharePoint Server 2010 支持自定义词典的语言和方言。 不能为中性语言分词系统创建自定义词典。 该表包含每种支持的语言和方言的语言代码标识符 (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 |