從篩選處理常式傳回屬性
屬性是使用已註冊的屬性處理常式從專案擷取,或使用針對特定檔案類型註冊的篩選。 篩選處理常式 (IFilter 介面的實作) 可以任意方式解譯檔案類型的內容。
本主題的組織方式如下:
屬性篩選
下表列出屬性篩選的最佳做法。
方法 | Description |
---|---|
IFilter::Init | 傳回 IFILTER_FLAGS 列舉。 如果 此列舉的IFILTER_FLAGS_OLE_PROPERTIES 成員設定為一個,則 Windows 搜尋會使用 IPropertySetStorage 和 IPropertyStorage 介面介面介面來列舉及存取外部實數值型別屬性。 |
IFilter::GetChunk | 以「區塊」傳回檔的資訊,其中包含區塊類型 (文字或值) 、名稱和地區設定。 區塊包含一個檔案屬性。 |
IFilter::GetText | 從區塊取得文字類型屬性。 |
IFilter::GetValue | 從區塊取得實值型別屬性。 |
下圖顯示範例檔。 外部實值型別屬性 DocTitle
(使用IPropertySetStorage 和 IPropertyStorage介面的方法取得,) 和 (取得的內部實數值型別屬性 Book
,) 將檔描述為整體。 文字類型屬性 Contents
並 Chapter
描述檔的內容。 處理本檔時,篩選處理常式 (IFilter 介面的實作,) 識別並擷取這些屬性。
屬性大小限制
屬性大小有兩個可能的限制:
- Windows 搜尋服務接受每個檔案的資料大小上限。
- 屬性描述檔中定義的每個屬性大小上限。
目前,Windows 搜尋不會在計算它從專案接受的資料量時,使用定義的屬性大小。 相反地,Windows 搜尋使用的限制是檔案大小乘積,而 MaxGrowFactor
(檔案大小 N * MaxGrowFactor) 從登錄讀取。 預設值 MaxGrowFactor
為四。
HKEY_LOCAL_MACHINE
SOFTWARE
Microsoft
Gathering Manager
MaxGrowFactor
因此,如果您的檔案類型大小通常很小,但具有較大的屬性,Windows 搜尋可能無法接受您想要發出的所有屬性資料。 不過,您可以增加 MaxGrowFactor
以符合您的需求。
其他資源
- GitHub上提供的IFilterSample程式碼範例示範如何建立IFilter基類來實作 IFilter 介面。
- 如需編制索引程式的概觀,請參閱 編制索引進程。
- 如需檔案類型的概觀,請參閱 檔案類型。
- 若要查詢檔案類型的檔案關聯屬性,請參閱 PerceivedTypes、SystemFileAssociations 和應用程式註冊。
- 如需屬性和屬性處理常式的概觀,以及可用於檔案格式的系統屬性清單,請參閱 開發 Windows 搜尋的屬性處理常式。