フィルター ハンドラーからプロパティを返す
プロパティは、登録されたプロパティ ハンドラーを使用するか、特定のファイルの種類に登録されたフィルターを使用して、アイテムから抽出されます。 フィルター ハンドラー ( IFilter インターフェイスの実装) では、ファイルの種類の内容をさまざまな方法で解釈できます。
このトピックは次のように整理されています。
プロパティのフィルター処理
プロパティ フィルター処理のベスト プラクティスを次の表に示します。
メソッド | 説明 |
---|---|
IFilter::Init | IFILTER_FLAGS列挙体を返します。 この列挙体の IFILTER_FLAGS_OLE_PROPERTIES メンバーが 1 に設定されている場合、Windows Search は IPropertySetStorage インターフェイスと IPropertyStorage インターフェイスを使用して、外部値型プロパティを列挙してアクセスします。 |
IFilter::GetChunk | チャンクの種類 (テキストまたは値)、名前、ロケールを持つ "チャンク" のドキュメントから情報を返します。 チャンクには、1 つのドキュメント プロパティが含まれています。 |
IFilter::GetText | チャンクからテキスト型のプロパティを取得します。 |
IFilter::GetValue | チャンクから値型プロパティを取得します。 |
次の図は、ドキュメントの例を示しています。 外部値型プロパティ DocTitle
( IPropertySetStorage インターフェイスと IPropertyStorage インターフェイスのメソッドを使用して取得) と内部値型プロパティ Book
(カスタム IFilter 実装の結果として取得) は、ドキュメント全体を記述します。 テキスト型のプロパティ Contents
と、 Chapter
ドキュメントの内容を記述します。 このドキュメントを処理する場合、フィルター ハンドラー ( IFilter インターフェイスの実装) によってこれらのプロパティが識別され、抽出されます。
プロパティ サイズの制限事項
プロパティ サイズには、次の 2 つの制限があります。
- Windows Search がファイルごとに受け入れるデータの最大サイズ。
- プロパティ記述ファイルで定義されているプロパティあたりの最大サイズ。
現在、Windows Search では、アイテムから受け入れるデータの量を計算するときに、定義されたプロパティ サイズは使用されません。 代わりに、Windows Search で使用される制限は、ファイルのサイズと MaxGrowFactor
レジストリから読み取られた (ファイル サイズ N * MaxGrowFactor) の積です。 既定値 MaxGrowFactor
は 4 です。
HKEY_LOCAL_MACHINE
SOFTWARE
Microsoft
Gathering Manager
MaxGrowFactor
したがって、ファイルの種類が合計サイズが小さい傾向があるが、プロパティが大きい場合、Windows Search では出力するすべてのプロパティ データを受け入れられない場合があります。 ただし、ニーズに合わせて を MaxGrowFactor
増やすことができます。
その他のリソース
- GitHub で入手できる IFilterSample コード サンプルは、IFilter インターフェイスを実装するための IFilter 基本クラスを作成する方法を示しています。
- インデックス作成プロセスの概要については、「 インデックス作成プロセス」を参照してください。
- ファイルの種類の概要については、「ファイルの 種類」を参照してください。
- ファイルの種類のファイル関連付け属性を照会するには、「 PerceivedTypes、SystemFileAssociations、およびアプリケーション登録」を参照してください。
- プロパティとプロパティ ハンドラーの概要、およびファイル形式に使用できるシステム プロパティの一覧については、「 Developing Property Handlers for Windows Search」を参照してください。
関連トピック
Windows Search のフィルター ハンドラーについて
Windows Search でフィルター ハンドラーを作成するためのベスト プラクティス