Поделиться через


Уведомление индекса изменений (устаревшие функции среды Windows)

Примечание

Windows Desktop Search 2.x — это устаревшая технология, которая изначально была доступна в качестве надстройки для Windows XP и Windows Server 2003. В более поздних выпусках используйте Windows Search .

При использовании microsoft Windows Desktop Search (WDS) 2.6 обработчики протоколов для данного хранилища данных могут сообщать индексатору WDS об изменении данных в хранилище. Это повышает производительность, гарантируя, что индексатор не будет выполнять обход всего хранилища по добавочным индексам. С помощью API-интерфейсов уведомлений обработчики протоколов могут уведомлять Индексатор о перемещении или удалении элемента, а также добавлять области в очередь обхода url-адресов, требующих индексирования, в очередь обхода индексатора WDS. Уведомление полезно для таких приложений, как электронная почта, где обработчик протокола отслеживает хранилище и уведомляет индексатор о том, что элементы были изменены и требуют индексирования.

ISearchItemsChangedSink

Обработчики протоколов уведомляют Индексатор об изменениях через интерфейс ISearchItemsChangedSink . Сведения об изменениях данных должны собираться в SEARCH_ITEM_CHANGE структуры и SEARCH_KIND_OF_CHANGE типах перечисления, а затем передаваться индексатору с помощью метода OnItemsChanged интерфейса ISearchItemsChangedSink .

Чтобы получить доступ к этому интерфейсу, обработчики пользовательских протоколов должны сначала создать экземпляр объекта ISearchManager , чтобы получить доступ к объекту ISearchCatalogManager . После этого можно создать экземпляр объекта ISearchItemsChangedSink и уведомить Индексатор об изменениях данных.

Метод OnItemsChanged позволяет собирать и передавать изменения данных в хранилище данных клиентов для запуска индексирования.

Направление Переменная Описание
В dwNumberofChanges Общее количество изменений в уведомлении.
В DataChangeEntries[] Все уведомления об изменениях в массиве SEARCH_ITEM_CHANGE структур.
Исходящий dwBatchId Идентификатор пакета, который будет передан обратно с ошибками.
Исходящий hrCompletionCodes[] Указывает, был ли каждый URL-адрес принят для индексирования.

 

Структура SEARCH_ITEM_CHANGE определяет тип произошедших изменений, а также текущий URL-адрес элемента и предыдущий URL-адрес, если применимо. Структура определяется следующим образом:

Имя свойства Тип свойства Описание
Изменение SEARCH_KIND_OF_CHANGE Тип извещенного изменения.
URL-адрес LPWSTR URL-адрес измененного объекта.
OldURL LPWSTR Если уведомление является перемещением, старый URL-адрес предоставляется и должен быть уникальным.
Приоритет SEARCH_NOTIFICATION_PRIORITY Приоритет изменения.

 

Перечисление SEARCH_KIND_OF_CHANGE определяется следующим образом:

Значение перечисления Значение Описание
SEARCH_CHANGE_ADD 0 Уведомление предназначено для дополнительного URL-адреса.
SEARCH_CHANGE_DELETE 1 Уведомление предназначено для удаления URL-адреса.
SEARCH_CHANGE_MODIFY 2 Уведомление заключается в том, что URL-адрес был изменен.
SEARCH_CHANGE_MOVE_RENAME 3 Уведомление предназначено для перемещения и переименования объекта на новый URL-адрес.
SEARCH_CHANGE_SEMANTICS_DIRECTORY 0x10000 Уведомление предназначено для URL-адреса контейнера.
SEARCH_CHANGE_SEMANTICS_SHALLOW 0x20000 Уведомление предназначено для URL-адреса контейнера, который должен индексировать только свойства контейнера.
SEARCH_CHANGE_SEMANTICS_SECURITY 0x40000 Уведомление предназначено для URL-адреса или URL-адреса контейнера, для которого были изменены свойства безопасности.

 

Перечисление SEARCH_NOTIFICATION_PRIORITY определяется следующим образом:

Значение перечисления Значение Описание
SEARCH_NORMAL_PRIORITY 0 При индексировании URL-адреса следует использовать только обычный приоритет. Эти уведомления обрабатываются перед обычным фоновым добавочным индексированием файлов и хранилищ пользователя.