Freigeben über


Gespeichertes Suchdateiformat

In Windows Vista und höher können Benutzer Suchvorgänge als Suchordner speichern, der von einer XML-Datei generiert wird, die die Abfrage in einem Formular speichert, das vom Windows-Suchsubsystem verwendet werden kann. In diesem Thema wird das Dateiformat (*.search-ms) beschrieben und die folgenden Abschnitte enthalten:

Übersicht über gespeicherte Suchvorgänge

Benutzer können eine Suchabfrage als Suchordner speichern, einem virtuellen Ordner, der im Windows-Explorer unter dem Suchordner angezeigt wird. Beim Öffnen eines Suchordners wird die gespeicherte Suche ausgeführt und up-to-Datumsergebnisse angezeigt. Die gespeicherte Suchdatei speichert die Abfrage in einem Format, auf dem Windows Search reagieren kann, und gibt an, wonach gesucht werden soll, wo gesucht werden soll und wie die Ergebnisse dargestellt werden.

Die gespeicherte Suche wird aus einer XML-Datei (*.search-ms) im Ordner %userprofile%\Searches generiert. Die Daten sind in drei primäre Elemente in der XML-Datei unterteilt:

  • <viewInfo-> gibt Präsentationsinformationen an.
  • <Abfrage-> angibt (Suchabfrageinformationen
  • <Eigenschaften> eigenschaften der Datei *.search-ms selbst angibt

Das folgende Beispiel zeigt die allgemeine Struktur einer gespeicherten Suchdatei.

<?xml version="1.0"?>
<persistedQuery version="1.0">

    <viewInfo ...>
        ...
    </viewInfo>

    <query>
        ...
    </query>

    <properties>
        ...
    </properties>

</persistedQuery>

<viewInfo>-Element

Das <viewInfo>-Element gibt an, wie die Ergebnisse dem Endbenutzer präsentiert werden. Das folgende Beispiel zeigt die Struktur des Elements.

...
    <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-> attribute

In der folgenden Tabelle werden die Attribute des <viewInfo->-Elements beschrieben.

Attribut Beschreibung Werte
viewMode Gibt die Ordneransicht an. Details | Symbole | Dachziegel
iconSize Steuert die Standardgröße der Symbole und Miniaturansichten für Elemente, wenn sie nicht stapeln. Ganze Zahl zwischen 16 und 256
stackIconSize Nur für die interne Verwendung. Nicht verwenden. n/a
displayName Nur für die interne Verwendung. Nicht verwenden. n/a
autoListFlags Nur für die interne Verwendung. Nicht verwenden. n/a
folderFlags Nur für die interne Verwendung. Nicht verwenden. n/a
taskFlags Nur für die interne Verwendung. Nicht verwenden. n/a

<viewInfo-> untergeordnete Elemente

Die untergeordneten Elemente des <viewInfo->-Elements geben an, welche Spalten in den Windows Explorer-Suchergebnissen angezeigt werden und wie die Ergebnisse gruppiert und sortiert werden. Jedes untergeordnete Element enthält eine sortierte Gruppe von Spalten, die durch kanonische Namen von Systemeigenschaften identifiziert werden (z. B. System.DisplayName). Wenn sie in der gespeicherten Suchdatei nicht definiert ist, werden die Suchergebnisse mit einem Standardsatz von Spalten angezeigt, die für die angezeigten Dateitypen geeignet sind.

Element Beschreibung Werte
visibleColumns Gibt eine sortierte Liste von Spalten an, die in der Ergebnisansicht angezeigt werden sollen. Der Benutzer kann diese Liste ändern. Eine beliebige Systemeigenschaft.
frequentlyUsedColumns Nur für die interne Verwendung. Nicht verwenden. n/a
columnChooserColumns Nur für die interne Verwendung. Nicht verwenden. n/a
groupBy Gibt eine einzelne Systemeigenschaft an, nach der die Ergebnisse gruppiert werden sollen. Der Benutzer kann diesen Wert ändern. Eine beliebige Systemeigenschaft.
sortList Gibt eine sortierte Liste von Spalten an, nach der die Ergebnisse sortiert werden sollen. Bis zu vier Systemeigenschaften. Der Benutzer kann diese Liste ändern.
stackList Nur für die interne Verwendung. Nicht verwenden. n/a

<Abfrageelement>

Die <Abfrage> Element gibt die Attribute an, die definieren, wie die Ergebnisse abgefragt werden. Das folgende Beispiel zeigt die Struktur des Elements.

...
    <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>
...

<Abfrage> untergeordnete Elemente

In der folgenden Tabelle werden die untergeordneten Elemente des <Bereichs> Elements beschrieben.

Element Beschreibung Wert
Anbieter Nur für die interne Verwendung. Nicht verwenden. n/a
Unterabfragen Nur für die interne Verwendung. Nicht verwenden. n/a
Umfang Identifiziert Speicherorte, die in die Suche eingeschlossen oder ausgeschlossen werden sollen. Entweder ein Pfad oder eine bekannten Ordner-ID des Speicherorts, der eingeschlossen oder ausgeschlossen werden soll. Dieses Element kann auch angeben, ob die Suche untergeordnete Pfade enthalten/ausschließen soll (eine flache oder tiefe Suche).
kindList Gibt die Art der datei(n) an, nach der gesucht werden soll. Ein beliebiger System.Kind-Wert.
Bedingungen Gibt Regeln zum Filtern von Ergebnissen an. Beispielsweise können die Ergebnisse auf E-Mails beschränkt werden, die von oder an eine bestimmte Person gesendet werden. andCondition, orCondition, notCondition, leafCondition.

<Bereich> Element

Der <Bereich> Element identifiziert die Speicherorte, die von der Suche eingeschlossen oder ausgeschlossen werden sollen. Das <Bereichselement> Element muss mindestens ein <enthalten,> untergeordnetes Element vorhanden ist und null oder mehr <> Elemente ausschließen. Die Speicherorte können entweder als Pfad (Umgebungsvariablen werden unterstützt) oder als bekannten Ordnerbezeichnerangegeben werden. Darüber hinaus können alle diese Speicherorte angegeben werden, die tief oder flach durchsucht werden sollen, indem die nichtrecursive auf "true" oder "false" festgelegt wird (Standard ist rekursiv). Teile der eingeschlossenen Liste von Speicherorten können ausgeschlossen werden, indem ausgeschlossene Elemente angegeben werden.

Im folgenden Beispiel wird ein <Bereichselement> Angezeigt, das den Ordner "Dokumente speziell" durchsucht, aber nicht dessen untergeordnete Elemente, das Volume "E:" und seine untergeordneten Elemente, aber nicht das Verzeichnis "E:\windows" oder eines seiner untergeordneten Elemente:

...
    <query>
        ...
        <scope>
            <include knownFolder="{FDD39AD0-238F-46AF-ADB4-6C85480369C7}" nonRecursive="true"/>
            <include path="E:\"/>
            <exclude path="E:\Windows" nonRecursive="false"/>
        </scope>
        ...
    </query>
...

<kindList>-Element

Diese Elemente definieren die Vereinigung der "Art" von Elementen, die in der Bibliothek angezeigt werden sollen. Die gültigen Werte sind:

  • Kalender
  • Kommunikation
  • Kontakt
  • Dokument
  • E-Mail
  • füttern
  • Ordner
  • Spiel
  • instantmessage
  • Tagebuch
  • verbinden
  • Film
  • Musik
  • Anmerkung
  • Bild
  • Programm
  • recordedtv
  • Searchfolder
  • Aufgabe
  • Video
  • Webhistory
  • Artikel
  • andere

<Bedingungen> Element

Bedingungen sind Filter, mit denen Suchergebnisse verglichen werden. Sie können z. B. Ergebnisse filtern, die bestimmten Kriterien entsprechen, z. B. Name des Autors oder Dateigröße. Der Satz von Bedingungen ist in eine einzelne Bedingungsstruktur mit logischen AND-, OR- und NOT-Verzweigungen integriert.

Das folgende Beispiel zeigt die Struktur der <Bedingung> Element.

...
    <query>
        ...
        <conditions>
            <condition type="" ...>
                <attributes>
                    <attribute attributeID="" .../>
                </attributes>
            </condition>
        </conditions>
    </query>
...

Der Bedingungstyp kann eine der folgenden Sein:

Art Beschreibung Verfügbare Attribute
andCondition Verbindung von zwei oder mehr untergeordneten Bedingungen n/a
orCondition Disjunktion von zwei weiteren untergeordneten Bedingungen n/a
notCondition Negation einer untergeordneten Bedingung n/a
leafCondition Vergleicht eine Eigenschaft mit einem Wert. propertyType, operator, value, valuetype

Die Attribute des <leafCondition> Elements identifizieren die Eigenschaften und Werte, nach denen die Ergebnisse gefiltert werden.

Beispiel: <Bedingungen> Element

Im folgenden Beispiel werden Ergebnisse für alle ungelesenen Elemente gefiltert, die von John erstellt wurden. Das heißt, die System.IsRead-Eigenschaft ist false, und die Zeichenfolge "john" wird in den Eigenschaften "System.Author" oder "System.ItemAuthors" angezeigt.

...
    <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>
...

<Eigenschaften> Element

Die <Eigenschaften> Element beschreiben die Eigenschaften der gespeicherten Suche selbst. Gespeicherte Suchdateien unterstützen vier Eigenschaften: <Autor>, <Art>, <Beschreibung>und <Tags>. Diese sind nur für die interne Verwendung vorgesehen.

Vollständige Spezifikation des Search-ms-Dateiformats

Nachfolgend sehen Sie ein Beispiel für den vollständigen XML-Code für eine gespeicherte Suchdatei.

<?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>

Beispiele für gespeicherte Suchvorgänge

Im Folgenden finden Sie Beispiele für *.search-ms-Dateien.

Zuletzt verwendete 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>

Zuletzt verwendete 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>

Kürzlich von Me.search-ms freigegeben

<?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>