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