Почему поисковый фильтр EWS возвращает меньше писем, чем я вижу в outlook?
Я использую следующий код для получения электронных писем, тема которых содержит "MS" и "QW". Я вижу более 8 писем, удовлетворяющих критериям поиска, но код возвращает только два письма. Может кто-нибудь помочь мне взглянуть на то, в чем здесь проблема?
var filter1 = new SearchFilter.ContainsSubstring(ItemSchema.Subject, "MS", ContainmentMode.Substring, ComparisonMode.IgnoreCase);
var filter2 = new SearchFilter.ContainsSubstring(ItemSchema.Subject, "QW");
var sf = new SearchFilter.SearchFilterCollection(LogicalOperator.And, filter1, filter2);
var findResults = service.FindItems(WellKnownFolderName.Inbox, sf view);
1 ответ
Несколько вещей, которые я вижу, если со Вторым поисковым фильтром вы не указали ContainmentMode или ComparsisonMode. Вы также, кажется, не добавили их в коллекцию SearchFilter. например, вы должны иметь
sf.Add(фильтр1); sf.Add(фильтр2);
Такой поиск приведет к довольно низкой производительности для папки с большим числом, я бы посоветовал вам взглянуть на AQS, тогда вы можете сделать
service.FindItems(WellKnownFolderName.Inbox, "Тема:MS И Тема:QW", представление);
Это позволит выполнять поиск по индексам контента и повысить производительность.