在日常使用 Outlook 的过程中,我们可能会遇到搜索结果不完整的问题。在这篇文章中,我们将讨论解决此问题的一种思路。

现象原因

Outlook 的默认搜索机制为 Fast Search。由于在 Fast Search 搜索机制中,Outlook 使用 pre-fix matching 的匹配规则来进行搜索,此问题现象为 pre-fix matching 机制导致的预期现象。微软有篇文档解释了 pre-fix matching 匹配规则,如下:

Learn to narrow your search criteria for better searches in Outlook:

https://support.microsoft.com/en-us/office/learn-to-narrow-your-search-criteria-for-better-searches-in-outlook-d824d1e9-a255-4c8a-8553-276fb895a8da

原文摘录如下:

Outlook uses what's called prefix matching when searching. So if you type ray into the Search box, Outlook will return messages that contain ray, Ray, Raymond, and rays, but not disarray or tray. Also, the search treats numbers that are connected to words (no spaces between the word and the number) as part of the word. Searching for "365" will NOT find messages that contain "Office365".

翻译:

Outlook 使用一种称作 “前缀匹配” 的规则来进行搜索。例如,当您在搜索框中输入关键字 “Ray” 时,Outlook 将返回包含 “Ray”, “Raymond” 与 “Rays” 的搜索结果,但不会返回包含 “Disarray” 或 “Tray” 的结果(注:为使您更好地了解“前缀匹配”,请注意关键字 “Ray” 在每个示例单词中的位置,即标黄处)。同样地,此规则会将中间不包含空格的字母与数字的组合体视作一个单词,例如,若您搜索关键字 “365”,那么 Outlook 将不会返回包含 “Office365”(字母与数字间不包含空格)的结果。

变通方案

作为变通方案,我们可以在 Outlook 客户端中通过调用 Windows Search 进行搜索。若使 Outlook 能够调用 Windows Search 进行搜索,我们可以对注册表执行以下修改:

打开注册表编辑器(regedit.exe), 定位至以下路径:

HKEY_CURRENT_USER\software\policies\Microsoft\Office\16.0\Outlook\Search

若该路径在您的环境中不存在,则请手动在 “HKEY_CURRENT_USER\software\policies\Microsoft\” 下创建 ”Office\16.0\Outlook\Search“(不包含引号)。

在路径 “HKEY_CURRENT_USER\software\policies\Microsoft\Office\16.0\Outlook\Search”下创建以下两个 DWORD (32位) 值,并将它们的数值数据设置为 “1”(不包含引号)。

DisableServerAssistedSearch

DisableServerAssistedSuggestions

重启 Outlook 客户端。