從篩選處理程式傳回屬性
屬性是透過已註冊的屬性處理程式從項目中擷取,或透過為特定檔案類型註冊的篩選器進行擷取。 篩選處理程式(IFilter 介面的實作)可以用任意數目的方式解譯檔類型的內容。
本主題的組織方式如下:
屬性篩選
下表列出屬性篩選的最佳做法。
方法 | 描述 |
---|---|
IFilter::Init | 傳回 IFILTER_FLAGS 列舉。 如果此列舉的 IFILTER_FLAGS_OLE_PROPERTIES 成員設定為一個,則 Windows 搜尋會使用 IPropertySetStorage 和 IPropertyStorage 介面來列舉和存取外部實值類型屬性。 |
IFilter::GetChunk | 使用區塊類型(文字或值)、名稱和語系,從文件中以「區塊」形式傳回資訊。 區塊包含一個文檔屬性。 |
IFilter::GetText | 從區塊取得文字類型屬性。 |
IFilter:GetValue | 從區塊取得值類型屬性。 |
下圖顯示範例檔。 外部實值型別屬性 DocTitle
(使用 IPropertySetStorage 和 IPropertyStorage 介面的方法取得)和內部實值型別屬性 Book
(因為自定義 IFilter 實作而取得)將檔描述為整體。 文字類型屬性 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 搜尋的屬性處理程式。
相關主題
關於 Windows 搜尋 中的篩選處理程式
在 Windows 搜尋服務中建立篩選處理程式的 最佳做法
隨附於 Windows 的 篩選處理程式
在 Windows 搜尋 中實作篩選處理程式