使用 EWS 搜索整个邮箱
Searching the entire mailbox with EWS
TL;DR
我正在尝试使用 EWS API 以 Exchange 2010 为目标对整个邮箱进行相当快速和高效的搜索。这可能吗?
这个问题困扰了我一段时间。当使用使用 EWS 的第三方电子邮件客户端时,您可以看出其他人也在为这个主题而苦苦挣扎。这些是我到目前为止尝试过的东西:
为所有项目创建 SearchFolder
和 Traversal="Deep"
,class IPM.Note
和 msgfolderroot
文件夹作为基础文件夹.对于拥有足够数量电子邮件的用户来说,这是不可持续的,因为此操作将立即受到限制,实质上是为该特定用户创建 DOS。
与上面相同,但添加了一个额外的 Rectriction
,一次将 item:DateTimeReceived
限制为一周。我想当用户正在查看的邮件相对较新时,这可以正常工作,但如果是旧电子邮件,则无法使用。
查找所有用户的文件夹 ID,并使用 AQS-参数设置为用户提供的搜索查询并行搜索所有这些文件夹。这也会限制服务器。
同上,但依次搜索所有文件夹。这对于邮箱中邮件很少且文件夹很少的用户来说还可以,但对于邮箱较大的用户来说速度不够快。
是否有一种相当快速的方法来使用 EWS 搜索整个邮箱?我的目标是 Exchange 2010。
- Outlook 为此(从 2010 年开始)创建了一个名为 AllItems Searchfolder 的搜索文件夹 http://blogs.msdn.com/b/webdav_101/archive/2015/05/03/ews-best-practices-allitems-folder.aspx。但它并非没有问题
主要问题是很多用户邮箱都是一堆文件夹和项目,并且没有很好的解决方案来查询 2010 年超过 100000 项目的实时文件夹(这比你想象的更常见).搜索文件夹是静态查询的不错选择,因为它们会在后台填充,但不会立即为您提供结果。即使是 2013 年的 eDiscovery 也无法快速提供非常大的结果集。一些方法是使您的查询异步(无论如何,这是大多数搜索文件等在 windows 中工作的方式),您逐渐将结果带入其中(例如,从收件箱开始,因为这是最有可能给您的地方点击并稍后带来其他结果)大多数用户将接受并理解这种体验。否则,如果您需要特定的响应时间,一种方法是自己对内容进行爬网和索引(这是可行的并且增加了实际价值,但需要付出代价)。搜索大量数据总是需要您做出一些权衡。
干杯
格伦
TL;DR
我正在尝试使用 EWS API 以 Exchange 2010 为目标对整个邮箱进行相当快速和高效的搜索。这可能吗?
这个问题困扰了我一段时间。当使用使用 EWS 的第三方电子邮件客户端时,您可以看出其他人也在为这个主题而苦苦挣扎。这些是我到目前为止尝试过的东西:
为所有项目创建
SearchFolder
和Traversal="Deep"
,classIPM.Note
和msgfolderroot
文件夹作为基础文件夹.对于拥有足够数量电子邮件的用户来说,这是不可持续的,因为此操作将立即受到限制,实质上是为该特定用户创建 DOS。与上面相同,但添加了一个额外的
Rectriction
,一次将item:DateTimeReceived
限制为一周。我想当用户正在查看的邮件相对较新时,这可以正常工作,但如果是旧电子邮件,则无法使用。查找所有用户的文件夹 ID,并使用 AQS-参数设置为用户提供的搜索查询并行搜索所有这些文件夹。这也会限制服务器。
同上,但依次搜索所有文件夹。这对于邮箱中邮件很少且文件夹很少的用户来说还可以,但对于邮箱较大的用户来说速度不够快。
是否有一种相当快速的方法来使用 EWS 搜索整个邮箱?我的目标是 Exchange 2010。
- Outlook 为此(从 2010 年开始)创建了一个名为 AllItems Searchfolder 的搜索文件夹 http://blogs.msdn.com/b/webdav_101/archive/2015/05/03/ews-best-practices-allitems-folder.aspx。但它并非没有问题
主要问题是很多用户邮箱都是一堆文件夹和项目,并且没有很好的解决方案来查询 2010 年超过 100000 项目的实时文件夹(这比你想象的更常见).搜索文件夹是静态查询的不错选择,因为它们会在后台填充,但不会立即为您提供结果。即使是 2013 年的 eDiscovery 也无法快速提供非常大的结果集。一些方法是使您的查询异步(无论如何,这是大多数搜索文件等在 windows 中工作的方式),您逐渐将结果带入其中(例如,从收件箱开始,因为这是最有可能给您的地方点击并稍后带来其他结果)大多数用户将接受并理解这种体验。否则,如果您需要特定的响应时间,一种方法是自己对内容进行爬网和索引(这是可行的并且增加了实际价值,但需要付出代价)。搜索大量数据总是需要您做出一些权衡。
干杯 格伦