诊断 Exchange 搜索问题

适用于:Exchange Server 2013

Exchange Search 可对 Exchange 邮箱中的邮箱和受支持附件编制索引。 Exchange 搜索增加了电子邮件的数量以及邮箱大小和存储配额、为用户配置了存档邮箱,并引入了可执行发现搜索的就地电子数据展示,已成为 Microsoft Exchange Server 2013 组织中关键的邮箱服务器组件。 Exchange 搜索存在的问题可能会影响用户工作效率和就地电子数据展示功能。

有关 Exchange 搜索的详细信息,请参阅Exchange 搜索

正在查找与管理 Exchange 搜索相关的管理任务? 请参阅Exchange 搜索过程

使用 Test-ExchangeSearch Cmdlet

本主题中过程的步骤 5 介绍了运行 Test-ExchangeSearch cmdlet 以帮助诊断 Exchange 搜索问题。 可以使用 Test-ExchangeSearch cmdlet 测试邮箱服务器、邮箱数据库或特定邮箱的 Exchange 搜索功能。 此 cmdlet 会向指定邮箱发送测试邮件(如果未指定邮箱,则向数据库的系统邮箱发送),然后执行搜索以确定邮件是否已编制索引,包括编制索引所花的时间。 正常情况下,Exchange Search 会在邮件创建或发送到邮箱后 10 秒左右对邮件编制索引。 测试完毕后,测试邮件将自动删除。

有关语法和参数的详细信息,请参阅 Test-ExchangeSearch

检索不可搜索的项目

可以使用 Get-FailedContentIndexDocuments cmdlet 检索 Exchange 搜索无法成功编制索引的不可搜索邮箱项目的列表。 可以针对邮箱服务器、邮箱数据库或特定邮箱运行 cmdlet。 该 cmdlet 返回有关无法搜索的每个项的详细信息。 邮箱项目无法搜索的原因有多种:例如,电子邮件可能包含无法为搜索编制索引的附件文件类型,或者因为搜索筛选器未安装或已禁用。 如果该文件类型的搜索筛选器可用,则可以在 Exchange 服务器上安装它。

重要

由 Microsoft 提供的搜索筛选器已经过测试并由 Microsoft 提供支持。 我们建议您先在测试环境中测试所有的第三方搜索筛选器,然后再将此类搜索筛选器安装在生产环境中的 exExchangeNoVersionExchange 服务器上。

若要详细了解不可搜索的项目,请参阅:

诊断 Exchange 搜索问题

你必须先获得权限,然后才能执行此过程或多个过程。 若要查看所需的权限,请参阅 收件人权限主题中的"Exchange 搜索"条目。

  1. 检查服务状态:Microsoft Exchange Search (MSExchangeFastSearch) 服务是否在邮箱服务器上启动? 如果是,请转至步骤 2。 如果不是,请使用 MMC 服务管理单元验证 MSExchangeFastSearch 服务是否正在运行,如下所示:

    1. 单击“开始”,指向“管理工具”,然后单击“服务”

    2. “服务”中,验证 Microsoft Exchange 搜索服务的“状态”是否列为“已启动”。

  2. 检查邮箱数据库配置:用户的邮箱数据库的 IndexEnabled 参数是否设置为 true? 如果是,请转至步骤 3。 如果不是,请在 Shell 中运行以下命令,验证 IndexEnabled 标志是否设置为 true。

    Get-MailboxDatabase | Format-Table Name,IndexEnabled
    

    有关语法和参数的详细信息,请参阅 Get-MailboxDatabase

  3. 检查邮箱数据库爬网状态:是否已对 Exchange 数据库进行爬网? 如果是,请转至步骤 4。 如果不是,请使用可靠性和性能监视器检查 MSExchange 搜索索引性能对象的爬网程序:邮箱剩余计数器。 执行下列步骤:

    1. 打开“性能监视器”(perfmon.exe)。

    2. 在控制台树中的“监视工具”下,单击“性能监视器”

    3. 在性能监视器窗格中,单击“添加”(绿色加号)。

    4. 在“添加计数器”的“从计算机选择计数器”列表中,选择要监视的邮箱数据库所在的服务器。

    5. 在“从计算机中选择计数器”列表下方不带标签的框中,选择“MSExchange 搜索索引”性能对象。

    6. 在“所选对象实例”框中,选择用户邮箱数据库的实例。

    7. 单击“添加”,然后单击“确定”。

      在“性能监视器”窗格中,“MSExchange 搜索索引”性能对象列在“对象”列中,其各个计数器列在“计数器”列中。

    8. 查看“爬网程序: 剩余邮箱”计数器。 任何值为 1 或大于 1 均表示仍在对数据库中的邮箱进行爬网。 爬网完成时,该值为“0”

    若要了解如何使用性能监视器,请参阅 Windows Server 2008 中性能和可靠性监视的入门指南

  4. 检查数据库副本索引运行状况:内容索引是否正常? 使用 Get-MailboxDatabaseCopyStatus cmdlet 检查数据库副本的内容索引运行状况。

    Get-MailboxDatabaseCopyStatus -Server $env:ComputerName | Format-Table Name,Status,ContentIndex* -Auto
    

    有关语法和参数的详细信息,请参阅 Get-MailboxDatabaseCopyStatus

  5. 运行 Test-ExchangeSearch cmdlet:如果邮箱数据库已被爬网,可以为邮箱数据库或特定邮箱运行 Test-ExchangeSearch cmdlet。

    Test-ExchangeSearch -Identity AlanBrewer@contoso.com
    

    有关语法和参数的详细信息,请参阅 Test-ExchangeSearch

  6. 检查应用程序事件日志:使用 事件查看器 或 Shell,检查应用程序事件日志中是否存在与搜索相关的错误消息。 检查以下事件源。

    • MSExchangeFastSearch

    • MSExchangeIS

    有关详细信息,请参阅事件日志条目中的链接。

  7. 重启 Microsoft Exchange 搜索服务:使用服务 MMC 管理单元或 Shell 停止,然后重启 Microsoft Exchange 搜索 (MSExchangeFastSearch) 服务:

    1. 单击“开始”,指向“管理工具”,然后单击“服务”

    2. 在“服务”中,右键单击“Microsoft Exchange 搜索”,然后单击“停止”。 服务停止后,再次右键单击此服务,然后单击“开始”

  8. 重新设置搜索目录的播种:在某些情况下(例如,当搜索目录损坏时),可能需要重新设置目录的播种。 如果需要对搜索目录重新设定种子,Exchange Search 将在应用程序事件日志中记录,向您发出通知。 有关对搜索目录重新设定种子的详细信息,请参阅重新设定搜索目录种子