EWS SearchFolder不会从正文返回值

时间:2015-03-16 13:39:30

标签: exchangewebservices officedev

我正在尝试使用EWS API(直接托管或Web服务)创建SearchFolder。我注意到,如果我在SearchFilter.ContainsSubstring上创建了ItemSchema.Body,我就不会与之进行任何对话。

这是我创建文件夹的方式:

var folder = new SearchFolder(service)
{
    DisplayName = topic
};
var searchParameters = folder.SearchParameters;
searchParameters.SearchFilter = new SearchFilter.ContainsSubstring(ItemSchema.Body, topic, ContainmentMode.Substring, ComparisonMode.IgnoreCaseAndNonSpacingCharacters);
searchParameters.RootFolderIds.Add(WellKnownFolderName.Root);
searchParameters.Traversal = SearchFolderTraversal.Deep;
folder.Save(WellKnownFolderName.SearchFolders);

稍后,我尝试从此文件夹中获取对话:

service.FindConversation(conversationView, folder.Id);

这会返回0个对话 我确保通过向我的电子邮件帐户发送两条消息,第一条仅在主题中有特殊术语,第二条在正文中具有相同的术语。如果我在ItemSchema.Subject创建一个带过滤器的SearchFolder,我会得到第一个对话,但是使用我在上面创建的SearchFolder,我没有得到预期的结果。

ContainsSubstring SearchFilter是否有一些限制?我尝试使用NormalizedBody或TextBody,但后来我在文件夹创建过程中遇到错误。还有什么我想念的吗?

1 个答案:

答案 0 :(得分:2)

在身体上执行搜索过滤器可能会有问题。这可以追溯到内容表中如何处理像Body这样的大型属性。查询字符串搜索可能会更好,但您无法使用查询字符串来创建搜索文件夹。