症状
请考虑以下方案。 默认情况下,在 Microsoft Exchange Server 2010 环境中为邮箱数据库启用 Exchange 搜索。 在联机模式下使用 Microsoft Outlook 在邮箱中搜索包含单个字母或一位数字的关键字或短语。 在这种情况下,即使邮箱中的关键字存在匹配项,也会收到以下错误消息:
找不到 "关键字" 的匹配项。 此外,应用程序日志中还会记录以下事件:
日志名称: ApplicationSource: MSExchangeIS 邮箱 StoreDate:日期事件 ID:9877Task 类别:内容 IndexingLevel: ErrorKeywords: ClassicUser: N/AComputer:计算机说明:内容索引函数 "CISearch:: EcGetRowsetAndAccessor" 收到 MSSearch 的异常错误代码。 邮箱数据库:邮箱数据库错误代码:0x80041606
注意: 0x80041606 = QUERY_E_TOOCOMPLEX
原因
出现此问题的原因是,对于单个字符搜索,Exchange 搜索具有硬编码的前缀搜索限制200000节点。 当前缀搜索超过此限制时,搜索将返回QUERY_E_TOOCOMPLEX。因此, 0x80041606作为事件 ID 9877 的一部分进行记录。 默认情况下,在 Exchange 2010 环境中使用 Outlook online 模式的所有搜索都是前缀搜索。 使用单个数字或字母会导致系统搜索整个邮箱数据库中以单个数字或字母开头的所有数字或单词。 如果已达到200000节点的默认限制,则搜索会返回错误。注意 达到200000节点限制的最常见方法是搜索包含单个数字或字母的单词或短语。 还有其他不太常见的原因,例如,通过许多 ANDs、Ors 和 NOTs 输入非常复杂的搜索。 此外,对于日期范围和搜索术语、"收件人" 和 "发件人" 和 "发件人" 和 "发件人" 字段中的大量条目,或者所有这些内容的组合,可能会导致限制。
解决方案
若要解决此问题,请安装以下更新汇总:
2608646 Exchange Server 2010 Service Pack 1 更新汇总6的说明 重要说明 本部分(或称方法或任务)包含有关如何修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,请务必严格按照这些步骤操作。 为了获得进一步的保护,请在修改注册表之前对其进行备份。 这样就可以在出现问题时还原注册表。 有关如何备份和还原注册表的更多信息,请单击下面的文章编号查看 Microsoft 知识库中相应的文章:
322756 如何在 Windows 中备份和还原注册表 安装更新汇总后,请按照以下步骤将查询限制节点的最大数量设置为1000000(十进制):
-
验证在过去一个月的特定 Exchange Server 2010 邮箱服务器上收到的应用程序日志中有多少个事件 ID 9877 和0x80041606 事件,并记录该号码。
-
单击 "开始" ,在 "开始搜索" 框中键入regedit ,然后按 enter。
-
找到并单击以下注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ExchangeServer\v14\ExSearch
-
单击 "编辑",指向 "新建",然后单击 "项"。
-
键入MaxRestrictionNodes,然后按 ENTER。
-
在 " MaxRestrictionNodes" 下,单击 "编辑",指向 "新建",然后单击 " DWORD 值"。
-
键入 "服务于r",然后按 ENTER。
-
该注册表项现在应如下所示: HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\ExchangeServer\v14\ExSearch\MaxRestrictionNodes\Server
-
单击 "编辑",然后单击 "修改"。
-
在 "值数据" 框中,键入1000000 (十进制)。 注意 在对注册表进行任何更改之前, MaxRestrictionNodes\Server条目的默认值为200000(十进制)。
-
退出注册表编辑器。
注意
-
重新启动 Microsoft Exchange 搜索索引器服务后,请在应用程序中签入以下事件 Id:
-
事件 ID 130 无法将从 MaxRestrictionNodes 注册表项中读入的 MailboxDB Guid 转换为 Guid
-
事件 ID 131 无法打开 MaxRestrictionNodes 注册表项
-
事件 ID 132 无法在索引器中设置 MaxRestrictionNodes 属性
-
-
如果您收到这些事件中的任何一个,则可能是输入注册表项或 DWORD 值不正确。 或者,您可能没有正确拼写新密钥或 DWORD 值。 进行必要的更正,然后重新启动 Microsoft Exchange 搜索索引器服务。 搜索事件 Id 130、131或132的任何新实例。
-
检查应用程序日志每周和每月,具体取决于应用程序日志中有错误0x80041606 的事件 ID 9877 的数量。
-
如果你仍然收到大量这些事件,可以将值增量增加为2000000(十进制)。
-
不要增加2000000(十进制)之外的值,因为这可能会降低服务器性能。
-
如果你已将值增加到2000000(十进制),并且仍每周或每月接收这些事件,这是预期的行为。 此行为可能是由执行非常复杂的搜索的用户导致的(有关详细信息,请参阅 "症状" 部分)。
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
更多信息
有关 Exchange 搜索的详细信息,请访问以下 Microsoft 网站:
有关 Exchange 搜索的常规信息有关如何禁用或启用 Exchange 搜索的详细信息,请访问以下 Microsoft 网站:
有关如何禁用或启用 Exchange 搜索的常规信息有关MaxRestrictionNodes条目的详细信息,请访问以下 Microsoft 网站: