Formato file di ricerca salvata
In Windows Vista e versioni successive, gli utenti possono salvare le ricerche come cartella di ricerca generata da un file XML che archivia la query in un modulo che può essere utilizzato dal sottosistema di ricerca di Windows. Questo argomento descrive il formato di file (*.search-ms) e include le sezioni seguenti:
- Panoramica delle ricerche salvate
- elemento viewInfo><
- < elemento> query
- <proprietà elemento>
- specifica completa del formato di file search-ms
- esempi di ricerche salvate
Panoramica delle ricerche salvate
Gli utenti possono salvare una query di ricerca come cartella di ricerca, una cartella virtuale visualizzata in Esplora risorse nella cartella Ricerche. L'apertura di una cartella di ricerca esegue la ricerca salvata e visualizza i risultati up-to-date. Il file di ricerca salvato archivia la query in un formato su cui Windows Search può agire, specificando cosa cercare, dove cercare e come presentare i risultati.
La ricerca salvata viene generata da un file XML (*.search-ms) nella cartella %userprofile%\Search. I dati sono suddivisi in tre elementi primari nel file XML:
- <viewInfo> specifica le informazioni sulla presentazione
- < > di query specifica (informazioni sulle query di ricerca)
- <proprietà> specifica le proprietà del file *.search-ms stesso
Nell'esempio seguente viene illustrata la struttura generale di un file di ricerca salvato.
<?xml version="1.0"?>
<persistedQuery version="1.0">
<viewInfo ...>
...
</viewInfo>
<query>
...
</query>
<properties>
...
</properties>
</persistedQuery>
Elemento <viewInfo>
L'elemento <viewInfo> specifica la modalità di presentazione dei risultati all'utente finale. Nell'esempio seguente viene illustrata la struttura dell'elemento .
...
<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>
...
attributi <viewInfo>
Nella tabella seguente vengono descritti gli attributi dell'elemento> viewInfo <.
Attributo | Descrizione | Valori |
---|---|---|
viewMode | Specifica la visualizzazione cartella. | Dettagli | Icone | Piastrelle |
iconSize | Controlla le dimensioni predefinite delle icone e delle anteprime per gli elementi quando non sono in pila. | Intero compreso tra 16 e 256 |
stackIconSize | Solo per uso interno. Non usare. | n/a |
displayName | Solo per uso interno. Non usare. | n/a |
autoListFlags | Solo per uso interno. Non usare. | n/a |
folderFlags | Solo per uso interno. Non usare. | n/a |
taskFlags | Solo per uso interno. Non usare. | n/a |
<viewInfo> elementi figlio
Gli elementi figlio dell'elemento <viewInfo> specificano quali colonne vengono visualizzate nei risultati della ricerca di Esplora risorse e come vengono raggruppati e ordinati i risultati. Ogni elemento figlio contiene un set ordinato di colonne, identificato dai nomi canonici delle proprietà di sistema, ad esempio System.DisplayName. Se non è definito nel file di ricerca salvato, i risultati della ricerca vengono visualizzati con un set predefinito di colonne appropriato per i tipi di file visualizzati.
Elemento | Descrizione | Valori |
---|---|---|
visibleColumns | Specifica un elenco ordinato di colonne da visualizzare nella visualizzazione risultati. L'utente può modificare questo elenco. | Qualsiasi proprietà di sistema. |
frequentlyUsedColumns | Solo per uso interno. Non usare. | n/a |
columnChooserColumns | Solo per uso interno. Non usare. | n/a |
groupBy | Specifica una singola proprietà di sistema in base alla quale raggruppare i risultati. L'utente può modificare questo valore. | Qualsiasi proprietà di sistema. |
sortList | Specifica un elenco ordinato di colonne per ordinare i risultati. | Fino a quattro proprietà di sistema. L'utente può modificare questo elenco. |
stackList | Solo per uso interno. Non usare. | n/a |
Elemento <query>
L'elemento> query <specifica gli attributi che definiscono la modalità di query dei risultati. Nell'esempio seguente viene illustrata la struttura dell'elemento .
...
<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> elementi figlio
Nella tabella seguente vengono descritti gli elementi figlio dell'elemento <ambito>.
Elemento> ambito <
L'ambito <> elemento identifica le posizioni da includere o escludere dalla ricerca. L'ambito <elemento> deve contenere almeno un <includere> elemento figlio presente e zero o più <escludere elementi>. I percorsi possono essere specificati come percorso (le variabili di ambiente sono supportate) o come identificatore di cartella noto . Inoltre, è possibile specificare ognuna di queste posizioni per la ricerca in profondità o superficiale impostando il non Ricorsivo su "true" o "false" (il valore predefinito è ricorsivo). Le parti dell'elenco di posizioni incluse possono essere escluse specificando elementi di esclusione.
Di seguito viene illustrato un <ambito> elemento che eseguirà la ricerca nella cartella speciale dei documenti, ma non nei relativi elementi figlio, nel volume "E:" e nei relativi elementi figlio, ma non nella directory "E:\windows" o in uno dei relativi elementi figlio:
...
<query>
...
<scope>
<include knownFolder="{FDD39AD0-238F-46AF-ADB4-6C85480369C7}" nonRecursive="true"/>
<include path="E:\"/>
<exclude path="E:\Windows" nonRecursive="false"/>
</scope>
...
</query>
...
Elemento> kindList <
Questi elementi definiscono l'unione del "tipo" di elementi che devono essere visualizzati nella libreria. I valori validi sono:
- calendario
- comunicazione
- contatto
- documento
- Nutrire
- cartella
- gioco
- instantmessage
- diario
- collegamento
- film
- musica
- nota
- immagine
- programma
- recordedtv
- searchfolder
- compito
- video
- webhistory
- articolo
- Altro
elemento> condizioni <
Le condizioni sono filtri rispetto ai quali vengono confrontati i risultati della ricerca. Ad esempio, è possibile filtrare i risultati che soddisfano determinati criteri, ad esempio il nome dell'autore o le dimensioni del file. Il set di condizioni è integrato in un albero a condizione singola con rami AND logici, OR e NOT.
Nell'esempio seguente viene illustrata la struttura della condizione <> elemento .
...
<query>
...
<conditions>
<condition type="" ...>
<attributes>
<attribute attributeID="" .../>
</attributes>
</condition>
</conditions>
</query>
...
Il tipo di condizione può essere uno dei seguenti:
Digitare | Descrizione | Attributi disponibili |
---|---|---|
andCondition | Congiunzione di due o più condizioni figlio | n/a |
orCondition | Disgiunzione di due di più condizioni figlio | n/a |
notCondition | Negazione di una condizione figlio | n/a |
leafCondition | Confronta una proprietà con un valore | property, propertyType, operator, value, valuetype |
Gli attributi dell'elemento leafCondition <> identificano le proprietà e i valori a cui vengono filtrati i risultati.
Esempio: <condizioni> elemento
Nell'esempio seguente vengono filtrati i risultati per tutti gli elementi non letti creati da John. Ovvero, la proprietà System.IsRead è false e la stringa "john" viene visualizzata nelle proprietà System.Author o 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>
...
Elemento> proprietà <
Le proprietà <> elemento descrivono le proprietà della ricerca salvata stessa. I file di ricerca salvati supportano quattro proprietà: <author>, <kind>, <description>e tag di <>. Questi sono solo per uso interno.
Specifica completa del formato di file search-ms
Di seguito è riportato un esempio del codice XML completo per un file di ricerca salvato.
<?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>
Esempi di ricerche salvate
Di seguito sono riportati esempi di file *.search-ms.
Documenti recenti.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>
Recenti 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>
Condivisi di recente da 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>