保存された検索ファイルの形式
Windows Vista 以降では、ユーザーは、クエリを Windows 検索サブシステムで使用できるフォームに格納する XML ファイルによって生成される検索フォルダーとして検索を保存できます。 このトピックでは、ファイル形式 (*.search-ms) について説明し、次のセクションを示します。
- 保存された検索 の の概要
- viewInfo> 要素 を<する
- viewInfo> Attributes を<する
- <viewInfo> 子要素
- 要素 > クエリを<する
- 子要素 > クエリを<する
- 要素 > プロパティを<する
- ms ファイル形式の検索の完全な仕様
- 保存された検索の例
保存された検索の概要
ユーザーは、検索クエリを検索フォルダーとして保存できます。これは、Windows エクスプローラーの [検索] フォルダーの下に表示される仮想フォルダーです。 検索フォルダーを開くと、保存された検索が実行され、-date 結果 up-to表示されます。 保存された検索ファイルには、Windows Search が操作できる形式でクエリが格納され、検索対象、検索場所、結果の表示方法が指定されます。
保存された検索は、%userprofile%\Searches フォルダー内の XML ファイル (*.search-ms) から生成されます。 データは、XML ファイル内の 3 つの主要な要素に分割されます。
- viewInfo> でプレゼンテーション情報を指定 <
- <クエリ> が指定します (検索クエリ情報
- <プロパティ>*.search-ms ファイル自体のプロパティを指定します
次の例は、保存された検索ファイルの大まかな構造を示しています。
<?xml version="1.0"?>
<persistedQuery version="1.0">
<viewInfo ...>
...
</viewInfo>
<query>
...
</query>
<properties>
...
</properties>
</persistedQuery>
viewInfo> 要素の <
<viewInfo> 要素は、エンド ユーザーに結果を表示する方法を指定します。 次の例は、要素の構造を示しています。
...
<viewInfo viewMode=""
iconSize=""
stackIconSize=""
autoListFlags=""
folderFlags=""
taskFlags=""
displayName="">
<visibleColumns>
<column viewField=""/>
</visibleColumns>
<frequentlyUsedColumns>
<column viewField= ""/>
</frequentlyUsedColumns>
<columnChooserColumns >
<column viewField=""/>
</columnChooserColumns >
<groupBy viewField=""
direction=""/>
<stackList>
<stack viewField=""/>
</stackList>
<sortList>
<sort viewField=""
direction=""/>
</sortList>
</viewInfo>
...
viewInfo> 属性の <
次の表では、<viewInfo> 要素の属性について説明します。
属性 | 形容 | 価値観 |
---|---|---|
viewMode | フォルダー ビューを指定します。 | 詳細 |アイコン |タイル |
iconSize | スタックしない項目のアイコンとサムネイルの既定のサイズを制御します。 | 16 ~ 256 の整数 |
stackIconSize | 内部使用のみ。 使用しないでください。 | n/a |
displayName | 内部使用のみ。 使用しないでください。 | n/a |
autoListFlags | 内部使用のみ。 使用しないでください。 | n/a |
folderFlags | 内部使用のみ。 使用しないでください。 | n/a |
taskFlags | 内部使用のみ。 使用しないでください。 | n/a |
<viewInfo> 子要素
<viewInfo> 要素の子要素は、Windows エクスプローラーの検索結果に表示される列と、結果のグループ化と並べ替え方法を指定します。 各子要素には、システム プロパティの正規名 (System.DisplayName など) で識別される、順序付けられた列のセットが含まれています。 保存された検索ファイルで定義されていない場合、検索結果には、表示されるファイルの種類に適した既定の列セットが表示されます。
要素 | 形容 | 価値観 |
---|---|---|
visibleColumns | 結果ビューに表示する列の順序付きリストを指定します。 ユーザーはこのリストを変更できます。 | 任意のシステム プロパティ。 |
frequentlyUsedColumns | 内部使用のみ。 使用しないでください。 | n/a |
columnChooserColumns | 内部使用のみ。 使用しないでください。 | n/a |
groupBy | 結果をグループ化する 1 つのシステム プロパティを指定します。 ユーザーはこの値を変更できます。 | 任意のシステム プロパティ。 |
sortList | 結果を並べ替える列の順序付きリストを指定します。 | 最大 4 つのシステム プロパティ。 ユーザーはこのリストを変更できます。 |
stackList | 内部使用のみ。 使用しないでください。 | n/a |
<query> 要素
<クエリ> 要素は、結果のクエリ方法を定義する属性を指定します。 次の例は、要素の構造を示しています。
...
<query>
<providers>
<provider clsid=""/> <!-- Do not use -->
</providers>
<subQueries>
<subQuery path=""/> <!-- Do not use -->
<subQuery knownSearch=""/> <!-- Do not use -->
</subQueries>
<scope>
<include path="" nonRecursive=""/> <!-- [path of location to include] -->
<include knownFolder="" nonRecursive=""/> <!-- Known folder ID -->
<exclude path="" nonRecursive=""/> <!-- [path of location to exclude] -->
<exclude knownFolder="" nonRecursive=""/> <!-- Known folder ID -->
</scope>
<kindList>
<kind name=""/> <!-- Kind value -->
</kindList>
<conditions>
<condition type="" ...> <!-- andCondition | orCondition | notCondition | leafCondition -->
<attributes>
<attribute attributeID="" .../> <!-- Do not use -->
</attributes>
</condition>
</conditions>
</query>
...
子要素> クエリを <する
次の表では、<スコープの> 要素の子要素について説明します。
要素 | 形容 | 価値 |
---|---|---|
プロバイダー | 内部使用のみ。 使用しないでください。 | n/a |
subQueries | 内部使用のみ。 使用しないでください。 | n/a |
スコープ | 検索に含める場所または除外する場所を識別します。 | 含める場所または除外する場所のパスまたは 既知のフォルダー ID。 この要素は、検索に子パスを含めるか除外するか (浅い検索または深い検索) を指定することもできます。 |
kindList | 検索するファイルの種類を識別します。 | 任意の System.Kind 値。 |
条件 | 結果をフィルター処理するための規則を指定します。 たとえば、結果は、特定のユーザーによって送信されたメールまたは特定のユーザーに送信されるメールに限定される場合があります。 | andCondition、orCondition、notCondition、leafCondition。 |
<scope> 要素
<スコープ> 要素は、検索に含める場所または検索から除外する場所を識別します。 <スコープ> 要素には、少なくとも 1 つの <が存在し、0 個以上の子要素> 含まれており、> 要素を除外 <必要があります。 場所は、パス (環境変数がサポートされています) または既知のフォルダー識別子 として指定できます。 さらに、これらの各場所は、nonRecursive を "true" または "false" (既定値は再帰的) に設定することで、深い場所または浅い場所を検索するように指定できます。 含まれる場所の一覧の一部を除外するには、除外要素を指定します。
次に示すのは、ドキュメントの特殊なフォルダーを検索する> 要素 <スコープですが、その子、"E:" ボリュームとその子は検索しませんが、"E:\windows" ディレクトリやその子は検索しません。
...
<query>
...
<scope>
<include knownFolder="{FDD39AD0-238F-46AF-ADB4-6C85480369C7}" nonRecursive="true"/>
<include path="E:\"/>
<exclude path="E:\Windows" nonRecursive="false"/>
</scope>
...
</query>
...
kindList> 要素の <
これらの要素は、ライブラリに表示される項目の "種類" の和集合を定義します。 有効な値は次のとおりです。
- 暦
- 通信
- 接触
- 文書
- 電子メール
- 飼料
- フォルダ
- ゲーム
- instantmessage
- 日誌
- リンク
- 映画
- 音楽
- 手記
- 画像
- プログラム
- recordedtv
- searchfolder
- タスク
- ビデオ
- webhistory
- アイテム
- 他
要素> 条件を <する
条件は、検索結果を比較するフィルターです。 たとえば、作成者名やファイル サイズなど、特定の条件を満たす結果をフィルター処理できます。 条件のセットは、論理 AND 分岐と OR 分岐と NOT 分岐を持つ単一の条件ツリーに組み込まれます。
次の例は、<条件> 要素の構造を示しています。
...
<query>
...
<conditions>
<condition type="" ...>
<attributes>
<attribute attributeID="" .../>
</attributes>
</condition>
</conditions>
</query>
...
条件の種類は、次のいずれかになります。
種類 | 形容 | 使用可能な属性 |
---|---|---|
andCondition | 2 つ以上の子条件の組み合わせ | n/a |
orCondition | さらに 2 つの子条件の解除 | n/a |
notCondition | 子条件の否定 | n/a |
leafCondition | プロパティと値を比較します | property、propertyType、operator、value、valuetype |
<leafCondition> 要素の属性は、結果がフィルター処理されるプロパティと値を識別します。
例: 要素> 条件を <する
次の例では、John によって作成されたすべての未読アイテムの結果をフィルター処理します。 つまり、System.IsRead プロパティが false で、文字列 "john" が System.Author プロパティまたは System.ItemAuthors プロパティに表示されます。
...
<query>
...
<conditions>
<condition type="andCondition">
<condition type="leafCondition"
property="System.IsRead"
operator="eq"
value="FALSE"/>
<condition type="orCondition">
<condition type="leafCondition"
property="System.Author"
propertyType="string"
operator="wordmatch"
value="John"
valueType="System.StructuredQueryType.String"/>
<condition type="leafCondition"
property="System.ItemAuthors"
propertyType="string"
operator="wordmatch"
value="John"
valueType="System.StructuredQueryType.String"/>
</condition>
</condition>
</conditions>
</query>
...
要素のプロパティ><する
要素><プロパティは、保存された検索自体のプロパティを記述します。 保存された検索ファイルは、<author>、<kind>、<description>、および <tags>の 4 つのプロパティをサポートします。 これらは内部でのみ使用されます。
search-ms ファイル形式の完全な仕様
保存された検索ファイルの完全な XML の例を次に示します。
<?xml version="1.0"?>
<persistedQuery version="1.0">
<!-- The viewInfo section defines how results are displayed to the end user -->
<viewInfo viewMode="" <!-- details | icons | tiles -->
iconSize="" <!-- Integer -->
stackIconSize="" <!-- Do not use -->
displayName="" <!-- Do not use -->
folderFlags="" <!-- Do not use -->
taskFlags="" <!-- Do not use -->
autoListFlags=""> <!-- Do not use -->
<visibleColumns>
<column viewField=""/> <!-- System.[propertyname] -->
</visibleColumns>
<frequentlyUsedColumns>
<column viewField= ""/> <!-- Do not use -->
</frequentlyUsedColumns>
<columnChooserColumns >
<column viewField=""/> <!-- Do not use -->
</columnChooserColumns >
<groupBy viewField="" <!-- System.[propertyname] -->
direction=""/> <!-- ascending | descending -->
<stackList>
<stack viewField=""/> <!-- Do not use -->
</stackList>
<sortList>
<sort viewField="" <!-- System.[propertyname] -->
direction=""/> <!-- ascending | descending -->
</sortList>
</viewInfo>
<!-- The query section defines what gets searched (locations, file kinds) -->
<query>
<providers>
<provider clsid=""/> <!-- Do not use -->
</providers>
<subQueries>
<subQuery path=""/> <!-- Do not use -->
<subQuery knownSearch=""/> <!-- Do not use -->
</subQueries>
<scope>
<include path="" nonRecursive=""/> <!-- [path of location to include] -->
<include knownFolder="" nonRecursive=""/> <!-- Known folder ID -->
<exclude path="" nonRecursive=""/> <!-- [path of location to exclude] -->
<exclude knownFolder="" nonRecursive=""/> <!-- Known folder ID -->
</scope>
<kindList>
<kind name=""/> <!-- Kind value -->
</kindList>
<conditions>
<condition type="" ...> <!-- andCondition | orCondition | notCondition | leafCondition -->
<attributes>
<attribute attributeID="" .../> <!-- Do not use -->
</attributes>
</condition>
</conditions>
</query>
<!-- The properties section identifies properties of the saved search file itself. -->
<properties>
... <!-- Do not use -->
</properties>
</persistedQuery>
保存された検索の例
*.search-ms ファイルの例を次に示します。
最近使用した Documents.search-ms
<?xml version="1.0"?>
<persistedQuery version="1.0">
<viewInfo viewMode="details" iconSize="16">
<sortList>
<sort viewField="System.DateModified" direction="descending"/>
</sortList>
</viewInfo>
<query>
<conditions>
<condition type="leafCondition" valuetype="System.StructuredQueryType.DateTime" property="System.DateModified" operator="imp" value="R00UUUUUUUUZZXD-30NU" propertyType="wstr" />
</conditions>
<kindList>
<kind name="Document"/>
</kindList>
<subQueries>
<subQuery knownSearch="{4f800859-0bd6-4e63-bbdc-38d3b616ca48}"/>
</subQueries>
</query>
</persistedQuery>
最近の Music.search-ms
<?xml version="1.0"?>
<persistedQuery version="1.0">
<viewInfo viewMode="details" iconSize="16">
<sortList>
<sort viewField="System.DateModified" direction="descending"/>
</sortList>
</viewInfo>
<query>
<conditions>
<condition type="leafCondition" valuetype="System.StructuredQueryType.DateTime" property="System.DateModified" operator="imp" value="R00UUUUUUUUW-1WNNU" propertyType="wstr"/>
</conditions>
<kindList>
<kind name="Music"/>
</kindList>
<subQueries>
<subQuery knownSearch="{4f800859-0bd6-4e63-bbdc-38d3b616ca48}"/>
</subQueries>
</query>
</persistedQuery>
最近 Me.search-ms によって共有されました
<?xml version="1.0"?>
<persistedQuery version="1.0">
<viewInfo viewMode="details" iconSize="16">
<visibleColumns>
<column viewField="System.ItemNameDisplay"/>
<column viewField="System.DateModified"/>
<column viewField="System.Keywords"/>
<column viewField="System.SharedWith"/>
<column viewField="System.ItemFolderPathDisplayNarrow"/>
</visibleColumns>
<frequentlyUsedColumns>
<column viewField="System.Author"/>
<column viewField="System.Kind"/>
<column viewField="System.Size"/>
<column viewField="System.Title"/>
<column viewField="System.Rating"/>
</frequentlyUsedColumns>
<sortList>
<sort viewField="System.SharedWith" direction="descending"/>
</sortList>
</viewInfo>
<query>
<conditions>
<condition type="andCondition">
<condition type="leafCondition" property="System.IsShared" operator="eq" value="true"/>
<condition type="leafCondition" property="System.FileOwner" operator="eq" value="[Me]"/>
</condition>
</conditions>
<kindList>
<kind name="item"/>
</kindList>
<scope>
<include knownFolder="{5E6C858F-0E22-4760-9AFE-EA3317B67173}"/>
<include knownFolder="{DFDF76A2-C82A-4D63-906A-5644AC457385}"/>
</scope>
</query>
</persistedQuery>