Windows 搜索中的通知过程
本主题按如下所示进行组织:
- 通知过程 的 概述
- 爬网
- Indexer-Managed 通知
- Provider-Managed 通知
- 行集上的 通知
- 相关主题
通知过程概述
可通过以下三种方法为数据存储中的数据编制索引:
- 爬
- 索引器管理的通知
- 提供程序管理的通知
以下各节介绍了每种方法的优点。
爬
启用通知的源在启动时执行增量爬网,然后依靠通知或显式命令再次爬网。 这在 Windows Vista 及更高版本上自动发生。 在 Windows Vista 之前的作系统上,必须在 任务计划程序中设置计划事件, 调用代码以在起始页上启动爬网。 无需实现任何形式的通知。 作为后台进程,索引器遍历其爬网范围,查找更改并更新目录。 对于几乎所有情况,建议使用此选项。
Indexer-Managed 通知
使用索引器管理的通知,可以实现通知策略,在数据存储中的数据发生更改时通知索引器,索引器管理跟踪通知并编制数据索引。 在这种情况下,你的组件(我们将调用通知提供程序)监视数据存储,收集有关存储更改的信息,然后定期向索引器通知索引器需要编制索引的项列表。 索引器负责在发生故障时恢复和解决通知。 此选项可以视为“发送它并忘记”策略,可降低索引器爬网的频率。
Provider-Managed 通知
使用提供程序管理的通知,可以实施类似于第二种方法的通知策略,只是通知提供商必须跟踪通知,并负责在发生故障时恢复和解决通知。 在这种情况下,通知提供程序会监视数据存储、收集和维护有关存储更改的信息、定期向索引器通知索引器需要索引的项列表、接收索引器的状态更新,并在发生故障时重新发送通知。
注意
除非 预期数据存储的增量爬网会显著阻碍性能,并且需要精细控制或深入了解索引状态,否则不建议使用 此选项。
行集上的通知
在 Windows 7 及更高版本中,索引事件使提供程序能够接收有关其行集的通知。 使用索引事件处理的提供程序可以采用类似于实际文件系统位置行为的方式维护其行集。 库和搜索是 Windows 7 中非文件系统位置的主要示例。 索引器事件是库视图,因为通知是文件和文件夹视图。 必须实现 IRowsetEvents 接口才能接收事件的通知。 数据层是索引器事件的主要客户端,决定在“项视图”UI 中对事件执行的作。 有关详细信息,请参阅 Windows 7 中的索引优先级和行集事件。
相比之下,在 Windows Vista 中,基于查询的视图没有关联的事件,但文件属性编辑的 Shell 缓存除外。 执行搜索时,返回的结果是静态的。 因此,如果将另一个文档添加到与搜索词匹配的系统中,则不会更新视图以包含新添加内容。 此行为是基于静态 Web 的结果的标准。 但是,尝试在存储位置上提供基于查询的视图时,静态结果的可接受性较低。 用户期望索引器中的内容是最新的。 有关详细信息,请参阅 通知更改索引。 有关参考文档,请参阅 通知接口。
相关主题