Windows 搜尋中的通知程式
本主題的組織方式如下:
通知程式概觀
有三種方法可以編製數據存放區的數據編製索引:
- 爬
- 索引器管理的通知
- 提供者管理的通知
下列各節將說明每個方法的優點。
爬
啟用通知的來源會在啟動時執行累加編目,然後依賴通知或明確命令再次編目。 這會在 Windows Vista 和更新版本上自動發生。 在 Windows Vista 之前的作系統上,您必須在 工作排程器中設定排程事件, 呼叫您的程式代碼,以在起始頁開始編目。 您不需要實作任何形式的通知。 做為背景程式,索引器會周遊其編目範圍,尋找變更並更新目錄。 針對幾乎所有情況,建議使用此選項。
Indexer-Managed 通知
使用索引器管理的通知,您可以實作通知策略,以在數據存放區中的數據變更時通知索引器,而索引器會管理追蹤通知並編製數據索引。 在此情況下,您的元件(我們將呼叫通知提供者)會監視數據存放區、收集存放區變更的相關信息,然後定期向索引器通知索引器需要編製索引的項目清單。 索引器負責復原和解決失敗時的通知。 此選項可視為「傳送並忘記」策略,可降低索引器編目的頻率。
Provider-Managed 通知
使用提供者管理的通知,您可以實作類似第二種方法的通知策略,不同之處在於您的通知提供者必須追蹤通知,並負責在失敗時復原和解決通知。 在此情況下,您的通知提供者會監視數據存放區、收集和維護存放區變更的相關信息、定期向索引器通知索引器需要編製索引的專案清單、接收索引器的狀態更新,並在失敗時重新傳送通知。
注意
除非您預期數據存放區的累加搜耙大幅阻礙效能,而且您需要對索引編製狀態進行細微的控制或深入解析,否則不建議 使用此選項。
數據列集上的通知
在 Windows 7 和更新版本中,索引事件可讓提供者接收其數據列集的相關通知。 使用索引事件設定的提供者可以維護其數據列集的方式,類似於實際文件系統位置的行為。 連結庫和搜尋是 Windows 7 中非文件系統位置的主要範例。 索引器事件是連結庫檢視,因為通知是檔案資料夾檢視。 必須實作 IRowsetEvents 介面,才能接收事件的通知。 數據層是索引器事件的主要用戶端,並決定使用項目檢視 UI 中的事件做什麼。 如需詳細資訊,請參閱在 Windows 7 中索引優先順序和數據列集事件。
相反地,在 Windows Vista 中,查詢型檢視除了檔案屬性編輯的 Shell 快取之外,沒有相關聯的事件。 當您執行搜尋時,傳回的結果會是靜態的。 因此,如果將另一份檔新增至符合搜尋字詞的系統,則不會更新檢視以包含新的新增專案。 此行為是靜態 Web 型結果的標準。 不過,當您嘗試提供記憶體位置的查詢型檢視時,靜態結果較不可接受的。 用戶預期索引器的內容是最新的。 如需詳細資訊,請參閱 通知變更索引。 如需參考檔,請參閱 通知介面。
相關主題