Sdílet prostřednictvím


Uložený formát vyhledávacího souboru

V systému Windows Vista a novějších můžou uživatelé ukládat hledání jako složku výsledků hledání, která je generována souborem XML, který ukládá dotaz ve formuláři, který může být používán subsystémem Windows Search. Toto téma popisuje formát souboru (*.search-ms) a obsahuje následující části:

Přehled uložených hledání

Uživatelé můžou vyhledávací dotaz uložit jako složku výsledků hledání, virtuální složku zobrazenou v Průzkumníku Windows ve složce Hledání. Otevření složky výsledků hledání spustí uložené hledání a zobrazí výsledky up-to-date. Uložený vyhledávací soubor ukládá dotaz ve formátu, na kterém může Windows Search reagovat, určit, co se má hledat, kde hledat a jak prezentovat výsledky.

Uložené hledání se generuje ze souboru XML (*.search-ms) ve složce %userprofile%\Searches. Data jsou rozdělena do tří primárních prvků v souboru XML:

  • <viewInfo> určuje informace o prezentaci.
  • < > dotazu určuje (informace o vyhledávacím dotazu
  • <vlastnosti> určuje vlastnosti samotného souboru *.search-ms.

Následující příklad ukazuje základní strukturu uloženého vyhledávacího souboru.

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

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

    <query>
        ...
    </query>

    <properties>
        ...
    </properties>

</persistedQuery>

element <viewInfo>

Element <viewInfo> určuje, jak jsou výsledky prezentovány koncovému uživateli. Následující příklad ukazuje strukturu elementu.

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

Následující tabulka popisuje atributy elementu <viewInfo>.

Atribut Popis Hodnoty
viewMode Určuje zobrazení složky. Podrobnosti | Ikony | Dlaždice
iconSize Určuje výchozí velikost ikon a miniatur položek, pokud nejsou na zásobníku. Celé číslo mezi 16 a 256
stackIconSize Pouze pro interní použití. Nepoužívejte. není k dispozici
displayName Pouze pro interní použití. Nepoužívejte. není k dispozici
autoListFlags Pouze pro interní použití. Nepoužívejte. není k dispozici
folderFlags Pouze pro interní použití. Nepoužívejte. není k dispozici
taskFlags Pouze pro interní použití. Nepoužívejte. není k dispozici

<viewInfo> podřízených elementů

Podřízené prvky elementu <viewInfo> určují, které sloupce se zobrazí ve výsledcích hledání v Průzkumníku Windows a jak jsou výsledky seskupené a seřazené. Každý podřízený prvek obsahuje seřazenou sadu sloupců identifikovaných kanonickými názvy systémových vlastností (například System.DisplayName). Pokud není v uloženém vyhledávacím souboru definováno, zobrazí se výsledky hledání s výchozí sadou sloupců vhodných pro zobrazené typy souborů.

Element Popis Hodnoty
visibleColumns Určuje seřazený seznam sloupců, které se zobrazí v zobrazení výsledků. Uživatel může tento seznam změnit. Jakákoli vlastnost systému.
častoUsedColumns Pouze pro interní použití. Nepoužívejte. není k dispozici
columnChooserColumns Pouze pro interní použití. Nepoužívejte. není k dispozici
groupBy Určuje jednu systémovou vlastnost, podle které se mají výsledky seskupit. Uživatel může tuto hodnotu změnit. Jakákoli vlastnost systému.
sortList Určuje seřazený seznam sloupců, podle kterých se mají výsledky seřadit. Až čtyři systémové vlastnosti. Uživatel může tento seznam změnit.
stackList Pouze pro interní použití. Nepoužívejte. není k dispozici

element> dotazu <

Prvek <dotazu> určuje atributy, které definují způsob dotazování výsledků. Následující příklad ukazuje strukturu elementu.

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

<podřízených elementů dotazu>

Následující tabulka popisuje podřízené prvky <oboru> elementu.

Element Popis Hodnota
Poskytovatelů Pouze pro interní použití. Nepoužívejte. není k dispozici
poddotazy Pouze pro interní použití. Nepoužívejte. není k dispozici
Rozsah Identifikuje umístění, která mají být zahrnuta nebo vyloučena do vyhledávání. Buď cesta, nebo známé ID složky umístění, které se má zahrnout nebo vyloučit. Tento prvek může také určit, zda má hledání zahrnovat nebo vyloučit podřízené cesty (mělké nebo hluboké hledání).
kindList Identifikuje typ souborů, které se mají vyhledat. Libovolná hodnota System.Kind.
podmínky Určuje pravidla pro filtrování výsledků. Výsledky můžou být například omezené na e-maily odeslané konkrétní osobou nebo konkrétní osobu. andCondition, orCondition, notCondition, leafCondition.

element> oboru <

Prvek <oboru> identifikuje umístění, která mají být zahrnuta nebo vyloučena z vyhledávání. Prvek> oboru <musí obsahovat alespoň jeden <, který obsahuje podřízený prvek> a nula nebo více <vyloučit prvky>. Umístění je možné zadat jako cestu (proměnné prostředí jsou podporovány) nebo jako známý identifikátor složky. Kromě toho je možné každou z těchto umístění zadat tak, aby byla prohledána hluboko nebo mělká, a to nastavením hodnoty NonRecursive na true nebo false (výchozí hodnota je rekurzivní). Části zahrnutého seznamu umístění mohou být vyloučeny zadáním prvků vyloučení.

Následuje příklad <oboru> elementu, který bude prohledávat speciální složku dokumentů, ale ne její podřízené položky, svazek "E:" a jeho podřízené položky, ale ne adresář "E:\windows" nebo žádný z jeho podřízených položek:

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

element <kindList>

Tyto prvky definují sjednocení "druhu" položek, které by se měly objevit v knihovně. Platné hodnoty jsou:

  • kalendář
  • komunikace
  • kontakt
  • dokument
  • E-mail
  • krmit
  • složka
  • hra
  • instantmessage
  • deník
  • propojit
  • film
  • hudba
  • poznámka
  • obraz
  • program
  • recordedtv
  • searchfolder
  • úkol
  • video
  • webhistory
  • položka
  • jiný

<podmínky> elementu

Podmínky jsou filtry, se kterými se výsledky hledání porovnávají. Můžete například filtrovat výsledky, které splňují určitá kritéria, například jméno autora nebo velikost souboru. Sada podmínek je integrovaná do jediného stromu podmínek s logickým operátorem AND, NEBO a NE větvemi.

Následující příklad ukazuje strukturu <podmínka> elementu.

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

Typ podmínky může být jeden z následujících:

Typ Popis Dostupné atributy
andCondition Spojení dvou nebo více podřízených podmínek není k dispozici
orCondition Disjunkce dvou dalších podřízených podmínek není k dispozici
notCondition Negace podřízené podmínky není k dispozici
leafCondition Porovná vlastnost s hodnotou. property, propertyType, operator, value, valuetype

Atributy elementu <leafCondition> identifikují vlastnosti a hodnoty, podle kterých jsou výsledky filtrovány.

Příklad: <podmínky> elementu

Následující příklad filtruje výsledky pro všechny nepřečtené položky vytvořené Johnem. To znamená, System.IsRead vlastnost je false a řetězec "john" se zobrazí ve vlastnostech System.Author nebo 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>
...

element <vlastnosti>

Vlastnost <> element popisuje vlastnosti samotného uloženého vyhledávání. Uložené soubory hledání podporují čtyři vlastnosti: <autora>, <druh>, <popis>a <značky>. Jedná se pouze o interní použití.

Úplná specifikace formátu souboru search-ms

Následuje příklad úplného XML uloženého vyhledávacího souboru.

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

Příklady uložených hledání

Tady jsou příklady souborů *.search-ms.

Poslední dokumenty.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>

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

Nedávno sdíleno uživatelem 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>