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:
- Mentett keresések áttekintése
- <viewInfo> Elem
- <lekérdezési> elem
- <tulajdonságok> Elem
- search-ms fájlformátum teljes specifikációja
- Mentett keresések példái
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
- 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>