Уменьшает ли создание логической папки поиска Outlook задержку поиска?

#outlook-addin #exchangewebservices

#outlook-добавление #exchangewebservices

Вопрос:

Я создаю папку логического поиска, чтобы содержать все электронные письма с определенной категорией. Затем я извлекаю эти электронные письма, используя запрос 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>
  

Ответ №1:

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

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