プロパティは、登録済みのプロパティ ハンドラーを使用するか、特定のファイルの種類に登録されたフィルターを使用して、項目から抽出されます。 フィルター ハンドラー ( IFilter インターフェイスの実装) は、任意の数の方法でファイルの種類の内容を解釈できます。
このトピックは次のように構成されています。
プロパティのフィルター処理
プロパティ フィルター処理のベスト プラクティスを次の表に示します。
| メソッド | Description |
|---|---|
| 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、およびアプリケーションの登録」を参照してください。
- プロパティとプロパティ ハンドラーの概要、およびファイル形式に使用できるシステム プロパティの一覧については、「 Windows Search のプロパティ ハンドラーの開発」を参照してください。
関連トピック
Windows Search のフィルター ハンドラーについて
Windows Search でフィルター ハンドラーを作成するためのベスト プラクティス