2016-10-10 4 views
0

Я создаю логическую папку поиска, содержащую все электронные письма с определенной категорией. Затем я извлекаю эти письма с помощью запроса FindItem + ParentFolderIds. Скорость этого запроса FindItem, по-видимому, пропорциональна общему количеству писем в учетной записи, а не количеству писем в папке логического поиска. Это нормальное поведение?Создает ли поисковая папка с логическим поиском уменьшение задержки поиска?

Вот запрос, чтобы создать папку поиска:

<?xml version="1.0" encoding="utf-8"?> 
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" 
     xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" 
     xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Header> 
     <t:RequestServerVersion Version="Exchange2010" /> 
    </soap:Header> 
    <soap:Body> 
     <m:CreateFolder> 
     <m:ParentFolderId> 
      <t:DistinguishedFolderId Id="searchfolders" /> 
     </m:ParentFolderId> 
     <m:Folders> 
      <t:SearchFolder> 
      <t:DisplayName>MySearchFolder</t:DisplayName> 
      <t:PermissionSet> 
       <t:Permissions /> 
      </t:PermissionSet> 
      <t:SearchParameters Traversal="Deep"> 
       <t:Restriction> 
       <t:Contains ContainmentMode="FullString" ContainmentComparison="IgnoreCase"> 
        <t:FieldURI FieldURI="item:Categories" /> 
        <t:Constant Value="My_Category" /> 
       </t:Contains> 
       </t:Restriction> 
       <t:BaseFolderIds> 
       <t:DistinguishedFolderId Id="root" /> 
       </t:BaseFolderIds> 
      </t:SearchParameters> 
      </t:SearchFolder> 
     </m:Folders> 
     </m:CreateFolder> 
    </soap:Body> 
    </soap:Envelope> 

А вот запрос для получения сообщений электронной почты из папки поиска:

<?xml version="1.0" encoding="utf-8"?> 
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Header> 
     <t:RequestServerVersion Version="Exchange2013_SP1" /> 
    </soap:Header> 
    <soap:Body> 
     <m:FindItem Traversal="Shallow"> 
     <m:ItemShape> 
      <t:BaseShape>AllProperties</t:BaseShape> 
     </m:ItemShape> 
     <m:IndexedPageItemView MaxEntriesReturned="1000" Offset="0" BasePoint="Beginning" /> 
     <m:Restriction> 
      <t:IsEqualTo> 
       <t:FieldURI FieldURI="item:IsDraft" /> 
       <t:FieldURIOrConstant> 
       <t:Constant Value="false" /> 
      </t:FieldURIOrConstant> 
      </t:IsEqualTo> 
     </m:Restriction> 
     <m:ParentFolderIds> 
      <t:FolderId Id="<The_SEARCH_FOLDER_ID>" /> 
     </m:ParentFolderIds> 
     </m:FindItem> 
    </soap:Body> 
    </soap:Envelope> 

ответ

0

Имейте в виду, что элементы не на самом деле «в» папке поиска. Папка поиска - это действительно постоянный результат поиска, который можно рассматривать как папку. Таким образом, эти элементы все еще распределены по разным папкам в почтовом ящике.

При запросе папки поиска вы добавляете второе ограничение (IsDraft = false), что, вероятно, приведет к переоценке результатов.