Megosztás a következőn keresztül:


Mentett keresési fájlformátum

A Windows Vista és újabb verziókban a felhasználók keresési mappaként menthetik a keresést, amelyet egy XML-fájl hoz létre, amely a lekérdezést a Windows keresési alrendszer által használható formában tárolja. Ez a témakör a fájlformátumot (*.search-ms) ismerteti, és a következő szakaszokat tartalmazza:

A mentett keresések áttekintése

A felhasználók keresési mappaként menthetik a keresési lekérdezéseket, a Windows Intézőben a Keresések mappa alatt megjelenő virtuális mappát. A keresési mappa megnyitása futtatja a mentett keresést, és megjeleníti up-to-date találatokat. A mentett keresési fájl a lekérdezést olyan formátumban tárolja, amelyen a Windows Search képes működni, megadva, hogy mit keressen, hol keressen, és hogyan jelenítse meg az eredményeket.

A mentett keresés egy XML-fájlból (*.search-ms) jön létre a %userprofile%\Searches mappában. Az adatok három elsődleges elemre vannak osztva az XML-fájlban:

  • <viewInfo> a bemutató adatait adja meg
  • <lekérdezési> határozza meg (keresési lekérdezés adatai
  • <tulajdonságokat> a *.search-ms fájl tulajdonságait határozza meg.

Az alábbi példa egy mentett keresési fájl magas szintű struktúráját mutatja be.

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

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

    <query>
        ...
    </query>

    <properties>
        ...
    </properties>

</persistedQuery>

<viewInfo> elem

A <viewInfo> elem határozza meg, hogy az eredmények hogyan jelenjenek meg a végfelhasználó számára. Az alábbi példa az elem szerkezetét mutatja be.

...
    <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> attribútumok

Az alábbi táblázat a <viewInfo> elem attribútumait ismerteti.

Attribútum Leírás Értékrend
viewMode A mappanézetet adja meg. Részletek | Ikonok | Csempeborítás
iconSize Az elemek alapértelmezett méretét szabályozza, ha nem verem. Egész szám 16 és 256 között
stackIconSize Csak belső használatra. Ne használja. N/a
displayName Csak belső használatra. Ne használja. N/a
autoListFlags Csak belső használatra. Ne használja. N/a
folderFlags Csak belső használatra. Ne használja. N/a
taskFlags Csak belső használatra. Ne használja. N/a

<viewInfo> Gyermekelemek

A <viewInfo> elem gyermekelemei határozzák meg, hogy mely oszlopok jelenjenek meg a Windows Intéző keresési eredményeiben, és hogyan csoportosítják és rendezik az eredményeket. Minden gyermekelem egy rendezett oszlopkészletet tartalmaz, amelyet a rendszertulajdonságok (például System.DisplayName) canonical neve azonosít. Ha nincs megadva a mentett keresési fájlban, a keresési eredmények a megjelenített fájltípusoknak megfelelő alapértelmezett oszlopkészlettel jelennek meg.

Elem Leírás Értékrend
visibleColumns Az eredmények nézetben megjelenítendő oszlopok rendezett listáját adja meg. A felhasználó módosíthatja ezt a listát. Bármely rendszertulajdonság.
frequentlyUsedColumns Csak belső használatra. Ne használja. N/a
columnChooserColumns Csak belső használatra. Ne használja. N/a
groupBy Egyetlen rendszertulajdonságot határoz meg, amellyel csoportosíthatja az eredményeket. A felhasználó módosíthatja ezt az értéket. Bármely rendszertulajdonság.
sortList Az oszlopok rendezett listáját adja meg az eredmények rendezéséhez. Legfeljebb négy rendszertulajdonság. A felhasználó módosíthatja ezt a listát.
stackList Csak belső használatra. Ne használja. N/a

<lekérdezési> elem

A <lekérdezési> elem határozza meg azokat az attribútumokat, amelyek meghatározzák az eredmények lekérésének módját. Az alábbi példa az elem szerkezetét mutatja be.

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

<gyermekelemek> lekérdezése

Az alábbi táblázat a <hatókör> elem gyermekelemét ismerteti.

Elem Leírás Érték
Szolgáltatók Csak belső használatra. Ne használja. N/a
subQueries Csak belső használatra. Ne használja. N/a
Kiterjedés Azonosítja a keresésbe belefoglalni vagy kizárni kívánt helyeket. Egy elérési út vagy egy ismert mappaazonosító a hozzáadni vagy kizárni kívánt helyről. Ez az elem azt is megadhatja, hogy a keresés tartalmazzon vagy zárjon ki gyermekútvonalakat (sekély vagy mély keresést).
kindList Azonosítja a keresendő fájl(ok) típusát. Bármilyen System.Kind érték.
feltételek Az eredmények szűrésére vonatkozó szabályokat adja meg. Az eredmények például egy adott személy által vagy egy adott személynek küldött e-mailekre korlátozódhatnak. andCondition, orCondition, notCondition, leafCondition.

<hatókör> elem

A <hatókör> elem azonosítja a keresésbe felvenni vagy kizárni kívánt helyeket. A <hatókör> elemnek legalább egy <tartalmaznia kell> gyermekelemet, és nulla vagy több <ki kell zárnia> elemeket. A helyek megadhatóak elérési útként (a környezeti változók támogatottak), vagy ismert mappaazonosítóként. Ezen kívül mindegyik hely megadható úgy, hogy mélyen vagy sekélyen kereshető legyen, ha a nem Rekurzív értéket "igaz" vagy "hamis" értékre állítja (az alapértelmezett érték rekurzív). A belefoglalt helyek listájának részei kizárhatók kizáró elemek megadásával.

Az alábbiakban egy <hatókör> elem látható, amely a dokumentumok speciális mappájában keres, a gyermekeiket, az "E:" kötetet és annak gyermekeit nem, de az "E:\windows" könyvtárat vagy annak gyermekeit nem:

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

<kindList> Elem

Ezek az elemek határozzák meg a kódtárban megjelenő elemek "típusának" egyesítését. Az érvényes értékek a következők:

  • naptár
  • kommunikáció
  • érintkezés
  • dokumentum
  • E-mail
  • etet
  • mappa
  • játék
  • instantmessage
  • napló
  • láncszem
  • film
  • zene
  • jegyzet
  • kép
  • program
  • recordedtv
  • searchfolder
  • feladat
  • video
  • webhistory
  • cikk
  • más

<feltételek> elem

A feltételek olyan szűrők, amelyekkel összehasonlítják a keresési eredményeket. Szűrheti például bizonyos feltételeknek megfelelő eredményeket, például a szerző nevét vagy a fájlméretet. A feltételek halmaza egyetlen feltételfába van beépítve logikai ÉS, VAGY és NEM ágakkal.

Az alábbi példa a <feltétel> elem szerkezetét mutatja be.

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

A feltétel típusa a következők egyike lehet:

Típus Leírás Elérhető attribútumok
andCondition Két vagy több gyermekfeltétel együttes alkalmazása N/a
orCondition Két további gyermekfeltétel eltiltása N/a
notCondition Gyermekállapot tagadása N/a
leafCondition Egy tulajdonság és az érték összehasonlítása tulajdonság, propertyType, operátor, érték, értéktípus

A <leafCondition> elem attribútumai azonosítják az eredményeket szűrt tulajdonságokat és értékeket.

Példa: <feltételek> elem

Az alábbi példa a John által létrehozott összes olvasatlan elemre szűri az eredményeket. Ez azt jelzi, hogy a System.IsRead tulajdonság hamis, és a "john" sztring megjelenik a System.Author vagy a System.ItemAuthors tulajdonságban.

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

<tulajdonságok> elem

A <tulajdonságok> elem maga a mentett keresés tulajdonságait írja le. A mentett keresési fájlok négy tulajdonságot támogatnak: <szerző>, <típusú>, <leírást>és <címkéket>. Ezek csak belső használatra használhatók.

A search-ms fájlformátum teljes specifikációja

Az alábbiakban egy mentett keresési fájl teljes XML-fájlját mutatjuk be.

<?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éldák mentett keresésekre

Az alábbiakban a *.search-ms fájlokat mutatjuk be.

Legutóbbi dokumentumok.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>

Legutóbbi Zene.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>

Legutóbb megosztva: 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>