通知旧版 Windows 环境功能 (更改索引)

注意

Windows 桌面搜索 2.x 是一项过时的技术,最初作为 Windows XP 和 Windows Server 2003 的加载项提供。 在更高版本中,请改用 Windows 搜索

借助 Microsoft Windows 桌面搜索 (WDS) 2.6,给定数据存储的协议处理程序可以在存储中的数据发生更改时告知 WDS 索引器。 这通过确保索引器不会对增量索引上的整个存储进行爬网来提高性能。 使用通知 API,协议处理程序可以通知索引器某个项已被移动或删除,并且可以将范围添加到 WDS 索引器的需要索引的 URL 爬网队列。 通知对于电子邮件等应用程序非常有用,其中协议处理程序监视存储,并通知索引器项已更改并需要编制索引。

ISearchItemsChangedSink

协议处理程序通过 ISearchItemsChangedSink 接口通知索引器更改。 有关数据更改的信息应在SEARCH_ITEM_CHANGE结构和SEARCH_KIND_OF_CHANGE枚举类型中收集,然后通过 ISearchItemsChangedSink 接口的 OnItemsChanged 方法传达给索引器。

若要访问此接口,自定义协议处理程序必须先实例化 ISearchManager 对象,才能访问 ISearchCatalogManager 对象。 从那里,可以实例化 ISearchItemsChangedSink 对象,并通知索引器数据更改。

OnItemsChanged 方法允许收集数据更改并将其传达给客户数据存储,以启动索引编制。

方向 变量 说明
dwNumberofChanges 通知中的更改总数。
DataChangeEntries[] SEARCH_ITEM_CHANGE 结构数组中的所有更改通知。
dwBatchId 将传递回并出现错误的批 ID。
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 编制索引时,只应使用正常优先级。 这些通知在对用户的文件和存储进行正常的后台增量索引之前进行处理。