Медленный поиск предметов с использованием расширенного свойства на Exchange

Проблема под рукой

Наше приложение C # Windows используетEWS Managed API 2.0 создавать встречи в календаре пользователя. Каждое назначение имеет расширенное свойство с уникальной ценностью. Позже он находит назначение с помощьюFindItems иItemView.

Пользователи испытывают значительные задержки при первом поиске. Последующее время отклика вполне приемлемо.

(«первый раз» здесь немного расплывчатый, потому что пользователи могут снова столкнуться с задержкой позже в тот же день)

// locate ID of appointment where extended property value equals 1234:
var filter = new Ews.SearchFilter.IsEqualTo(extendedPropertyDefinition, 1234);
var view = new ItemView(1, 0);
view.PropertySet = BasePropertySet.IdOnly;
var folder = new FolderId(WellKnownFolderName.Calendar, new Mailbox("..."));
var result = service.FindItems(folder, filter, view);

Удаленный сервер являетсяExchange Server 2007 с пакетом обновления 1.

Исследовательская работа

MSDN связывает некоторые комментарии с папками поиска и ограниченными представлениямиОднако я не уверен, относятся ли они к нашей ситуации.

Актприменение представления к папке создает папки поиска в магазине, Когда папка поиска создается, она кэшируется для последующего использования. Если пользователь пытается создать папку поиска, которая уже существует, используется кэшированная папка поиска. Это позволяет в будущем просматривать довольно быстро. По умолчанию Exchange не кэширует все папки поиска бесконечно.

конкретнов отношении EWS:

Также важно учитывать тот факт, что при первом запуске поискового запроса хранилища Exchange он будет выполняться очень медленно и, возможно, по истечении времени ожидания, тогда как при последующих запусках он будет отвечать без проблем. Это вызвано внутренними процессами, которые происходят на сервере Exchange при выполнении поиска в хранилище.

Они предлагают создавать папки поиска для неизменяемых, не динамических запросов, что в нашем случае не подходит, так как запрос различен для каждой встречи.

Если приложению требуется определенный запрос с фиксированным набором неизменяемых параметров, вы можете использовать папки поиска. [...] папки поиска полезны только для неизменяющихся, нединамических запросов.

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

Можно ли «проиндексировать» это свойство? Можно ли что-либо настроить на стороне клиента или на стороне сервера, чтобы убрать эту начальную задержку?

Ответы на вопрос(4)

Ваш ответ на вопрос