Delen via


Opgeslagen zoekbestandsindeling

In Windows Vista en hoger kunnen gebruikers zoekopdrachten opslaan als een zoekmap die wordt gegenereerd door een XML-bestand waarin de query wordt opgeslagen in een formulier dat kan worden gebruikt door het Windows-zoeksubsysteem. Dit onderwerp beschrijft de bestandsindeling (*.search-ms) en bevat de volgende secties:

Overzicht van opgeslagen zoekopdrachten

Gebruikers kunnen een zoekquery opslaan als een zoekmap, een virtuele map die wordt weergegeven in Windows Verkenner onder de map Zoekopdrachten. Als u een zoekmap opent, wordt de opgeslagen zoekopdracht uitgevoerd en worden up-to-datumresultaten weergegeven. In het opgeslagen zoekbestand wordt de query opgeslagen in een indeling waarop Windows Search kan worden uitgevoerd, waarin wordt opgegeven waarnaar moet worden gezocht, waar moet worden gezocht en hoe de resultaten worden weergegeven.

De opgeslagen zoekopdracht wordt gegenereerd op basis van een XML-bestand (*.search-ms) in de map %userprofile%\Searches. De gegevens zijn onderverdeeld in drie primaire elementen in het XML-bestand:

  • <viewInfo-> geeft presentatiegegevens op
  • <query> specificeert (zoekquerygegevens)
  • <eigenschappen> eigenschappen van het bestand *.search-ms zelf opgeven

In het volgende voorbeeld ziet u de structuur op hoog niveau van een opgeslagen zoekbestand.

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

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

    <query>
        ...
    </query>

    <properties>
        ...
    </properties>

</persistedQuery>

<viewInfo> element

Het element <viewInfo> geeft aan hoe de resultaten aan de eindgebruiker worden gepresenteerd. In het volgende voorbeeld ziet u de structuur van het element.

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

In de volgende tabel worden de kenmerken van het element><viewInfo beschreven.

Attribuut Beschrijving Waarden
viewMode Hiermee geeft u de mapweergave. Details | Pictogrammen | Tegels
iconSize Hiermee bepaalt u de standaardgrootte van de pictogrammen en miniaturen voor items wanneer deze niet worden gestapeld. Geheel getal tussen 16 en 256
stackIconSize Alleen voor intern gebruik. Niet gebruiken. n.v.t
displayName Alleen voor intern gebruik. Niet gebruiken. n.v.t
autoListFlags Alleen voor intern gebruik. Niet gebruiken. n.v.t
folderFlags Alleen voor intern gebruik. Niet gebruiken. n.v.t
taskFlags Alleen voor intern gebruik. Niet gebruiken. n.v.t

<viewInfo> Onderliggende elementen

De onderliggende elementen van de <viewInfo> element geven op welke kolommen worden weergegeven in de zoekresultaten van Windows Verkenner en hoe de resultaten worden gegroepeerd en gesorteerd. Elk onderliggend element bevat een geordende set kolommen, geïdentificeerd door canonieke namen van systeemeigenschappen (bijvoorbeeld System.DisplayName). Als dit niet is gedefinieerd in het opgeslagen zoekbestand, worden de zoekresultaten weergegeven met een standaardset kolommen die geschikt zijn voor de weergegeven bestandstypen.

Element Beschrijving Waarden
visibleColumns Hiermee geeft u een geordende lijst met kolommen op die moeten worden weergegeven in de resultatenweergave. De gebruiker kan deze lijst wijzigen. Elke systeemeigenschap.
frequentlyUsedColumns Alleen voor intern gebruik. Niet gebruiken. n.v.t
columnChooserColumns Alleen voor intern gebruik. Niet gebruiken. n.v.t
groupBy Hiermee geeft u één systeemeigenschap op waarmee de resultaten moeten worden gegroepeerd. De gebruiker kan deze waarde wijzigen. Elke systeemeigenschap.
sortList Hiermee geeft u een geordende lijst met kolommen op om de resultaten te sorteren. Maximaal vier systeemeigenschappen. De gebruiker kan deze lijst wijzigen.
stackList Alleen voor intern gebruik. Niet gebruiken. n.v.t

<query> element

De <query> element geeft de kenmerken op die bepalen hoe de resultaten worden opgevraagd. In het volgende voorbeeld ziet u de structuur van het element.

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

<query> onderliggende elementen

In de volgende tabel worden de onderliggende elementen van het <bereik> element beschreven.

Element Beschrijving Waarde
Providers Alleen voor intern gebruik. Niet gebruiken. n.v.t
subquery's Alleen voor intern gebruik. Niet gebruiken. n.v.t
Draagwijdte Identificeert locaties die moeten worden opgenomen of uitgesloten in de zoekopdracht. Een pad of een bekende map-id van de locatie die moet worden opgenomen of uitgesloten. Dit element kan ook opgeven of de zoekopdracht onderliggende paden moet bevatten/uitsluiten (een ondiepe of diepe zoekopdracht).
kindList Identificeert het type bestand(en) dat moet worden gezocht. Elke System.Kind-waarde.
Voorwaarden Hiermee geeft u regels voor het filteren van resultaten. De resultaten kunnen bijvoorbeeld worden beperkt tot e-mailberichten die door of naar een bepaalde persoon worden verzonden. andCondition, orCondition, notCondition, leafCondition.

<bereik> element

Het <bereik> element identificeert de locaties die moeten worden opgenomen of uitgesloten van de zoekopdracht. Het <bereik> element moet ten minste één <bevatten> onderliggend element aanwezig en nul of meer <> elementen uitsluiten. De locaties kunnen worden opgegeven als een pad (omgevingsvariabelen worden ondersteund) of als een bekende map-id. Bovendien kan elk van deze locaties worden opgegeven om diep of ondiep te worden doorzocht door het nietRecursief in te stellen op 'true' of 'false' (standaard is recursief). Onderdelen van de opgenomen lijst met locaties kunnen worden uitgesloten door uitgesloten elementen op te geven.

Hieronder ziet u een <bereik> element waarmee in de speciale map documenten wordt gezocht, maar niet in de onderliggende mappen, het volume E:en de onderliggende items, maar niet in de map E:\windows of een van de onderliggende items:

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

<kindList>-element

Deze elementen definiëren de samenvoeging van het soort items dat in de bibliotheek moet worden weergegeven. De geldige waarden zijn:

  • kalender
  • communicatie
  • contact
  • document
  • E-mail
  • voeden
  • map
  • spel
  • instantmessage
  • dagboek
  • verbinden
  • film
  • muziek
  • notitie
  • beeld
  • programma
  • opgenomentv
  • zoekmap
  • taak
  • video
  • webhistory
  • item
  • ander

<voorwaarden> element

Voorwaarden zijn filters waarmee zoekresultaten worden vergeleken. U kunt bijvoorbeeld resultaten filteren die voldoen aan bepaalde criteria, zoals de naam van de auteur of de bestandsgrootte. De set voorwaarden is ingebouwd in één voorwaardestructuur met logische EN-, OR- en NOT-vertakkingen.

In het volgende voorbeeld ziet u de structuur van de <voorwaarde> element.

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

Het voorwaardetype kan een van de volgende zijn:

Type Beschrijving Beschikbare kenmerken
andCondition Combinatie van twee of meer onderliggende voorwaarden n.v.t
orCondition Disjunction of two of more child conditions n.v.t
notCondition Negatie van een onderliggende voorwaarde n.v.t
leafCondition Hiermee wordt een eigenschap vergeleken met de waarde eigenschap, propertyType, operator, waarde, waardetype

De kenmerken van het <leafCondition> element identificeren de eigenschappen en waarden waarop de resultaten worden gefilterd.

Voorbeeld: <voorwaarden> element

In het volgende voorbeeld worden resultaten gefilterd voor alle ongelezen items die zijn geschreven door John. Dat wil gezegd: de eigenschap System.IsRead is onwaar en de tekenreeks 'john' wordt weergegeven in de eigenschappen System.Author of 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>
...

<eigenschappen> element

Het <eigenschappen> element beschrijft de eigenschappen van de opgeslagen zoekopdracht zelf. Opgeslagen zoekbestanden ondersteunen vier eigenschappen: <auteur>, <soort>, <beschrijving>en <tags>. Deze zijn alleen voor intern gebruik.

Volledige specificatie van de search-ms-bestandsindeling

Hier volgt een voorbeeld van de volledige XML voor een opgeslagen zoekbestand.

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

Voorbeelden van opgeslagen zoekopdrachten

Hier volgen enkele voorbeelden van *.search-ms-bestanden.

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

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

Onlangs gedeeld door 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>