Formato de archivo de búsqueda guardado
En Windows Vista y versiones posteriores, los usuarios pueden guardar búsquedas como una carpeta de búsqueda generada por un archivo XML que almacena la consulta en un formulario que el subsistema de búsqueda de Windows puede usar. En este tema se describe el formato de archivo (*.search-ms) e incluye las secciones siguientes:
- información general de las búsquedas guardadas
- <viewInfo> Element
-
<consulta> elemento
- consulta <> elementos secundarios
- propiedades de <> Element
- especificación completa del formato de archivo search-ms
- ejemplos de de búsquedas guardadas
Información general de las búsquedas guardadas
Los usuarios pueden guardar una consulta de búsqueda como carpeta de búsqueda, una carpeta virtual que se muestra en el Explorador de Windows en la carpeta Búsquedas. Al abrir una carpeta de búsqueda, se ejecuta la búsqueda guardada y se muestran los resultados de up-to-date. El archivo de búsqueda guardado almacena la consulta en un formato en el que Windows Search puede actuar, especificando qué buscar, dónde buscar y cómo presentar los resultados.
La búsqueda guardada se genera a partir de un archivo XML (*.search-ms) en la carpeta %userprofile%\Search. Los datos se dividen en tres elementos principales del archivo XML:
- <viewInfo> especifica información de presentación
- < > de consulta especifica (información de consulta de búsqueda)
- <propiedades> especifica propiedades del propio archivo *.search-ms
En el ejemplo siguiente se muestra la estructura de alto nivel de un archivo de búsqueda guardado.
<?xml version="1.0"?>
<persistedQuery version="1.0">
<viewInfo ...>
...
</viewInfo>
<query>
...
</query>
<properties>
...
</properties>
</persistedQuery>
elemento viewInfo><
El elemento <viewInfo> especifica cómo se presentan los resultados al usuario final. En el ejemplo siguiente se muestra la estructura del 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>
...
<viewInfo> Attributes
En la tabla siguiente se describen los atributos del elemento <viewInfo>.
Atributo | Descripción | Valores |
---|---|---|
viewMode | Especifica la vista de carpetas. | Detalles | Iconos | Losa |
iconSize | Controla el tamaño predeterminado de los iconos y miniaturas de los elementos cuando no se apilan. | Entero entre 16 y 256 |
stackIconSize | Solo para uso interno. No use. | n/a |
displayName | Solo para uso interno. No use. | n/a |
autoListFlags | Solo para uso interno. No use. | n/a |
folderFlags | Solo para uso interno. No use. | n/a |
taskFlags | Solo para uso interno. No use. | n/a |
<viewInfo> elementos secundarios
Los elementos secundarios de la <viewInfo> elemento especifican qué columnas aparecen en los resultados de búsqueda del Explorador de Windows y cómo se agrupan y ordenan los resultados. Cada elemento secundario contiene un conjunto ordenado de columnas, identificado por nombres canónicos de propiedades del sistema (por ejemplo, System.DisplayName). Si no se define en el archivo de búsqueda guardado, los resultados de la búsqueda se presentan con un conjunto predeterminado de columnas adecuado para los tipos de archivo mostrados.
Elemento | Descripción | Valores |
---|---|---|
visibleColumns | Especifica una lista ordenada de columnas que aparecerán en la vista de resultados. El usuario puede cambiar esta lista. | Cualquier propiedad del sistema. |
frequentlyUsedColumns | Solo para uso interno. No use. | n/a |
columnChooserColumns | Solo para uso interno. No use. | n/a |
groupBy | Especifica una sola propiedad del sistema por la que se van a agrupar los resultados. El usuario puede cambiar este valor. | Cualquier propiedad del sistema. |
sortList | Especifica una lista ordenada de columnas por las que ordenar los resultados. | Hasta cuatro propiedades del sistema. El usuario puede cambiar esta lista. |
stackList | Solo para uso interno. No use. | n/a |
Elemento> consulta de <
El elemento <consulta> especifica los atributos que definen cómo se consultan los resultados. En el ejemplo siguiente se muestra la estructura del 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>
...
consulta <elementos secundarios de>
En la tabla siguiente se describen los elementos secundarios del <ámbito> elemento.
Elemento | Descripción | Valor |
---|---|---|
Proveedores | Solo para uso interno. No use. | n/a |
subConsultas | Solo para uso interno. No use. | n/a |
Alcance | Identifica las ubicaciones que se van a incluir o excluir en la búsqueda. | Una ruta de acceso o un identificador de carpeta conocido de la ubicación que se va a incluir o excluir. Este elemento también puede especificar si la búsqueda debe incluir o excluir rutas secundarias (una búsqueda superficial o profunda). |
kindList | Identifica el tipo de archivo que se va a buscar. | Cualquier valor System.Kind. |
condiciones | Especifica reglas para filtrar los resultados. Por ejemplo, los resultados pueden limitarse a los correos electrónicos enviados por o a una persona determinada. | andCondition, orCondition, notCondition, leafCondition. |
elemento> de ámbito de <
El <ámbito> elemento identifica las ubicaciones que se van a incluir o excluir de la búsqueda. El elemento> ámbito de <debe contener al menos un <incluir> elemento secundario presente y cero o más <excluir elementos>. Las ubicaciones se pueden especificar como una ruta de acceso (se admiten variables de entorno) o como un identificador de carpeta conocido . Además, se puede especificar cada una de estas ubicaciones para que se busque en profundidad o superficial estableciendo nonRecursive en "true" o "false" (el valor predeterminado es recursivo). Las partes de la lista incluida de ubicaciones se pueden excluir especificando elementos exclude.
A continuación se muestra un <ámbito> elemento que buscará en la carpeta especial documentos, pero no sus elementos secundarios, el volumen "E:" y sus elementos secundarios, pero no el directorio "E:\windows" ni ninguno de sus elementos secundarios:
...
<query>
...
<scope>
<include knownFolder="{FDD39AD0-238F-46AF-ADB4-6C85480369C7}" nonRecursive="true"/>
<include path="E:\"/>
<exclude path="E:\Windows" nonRecursive="false"/>
</scope>
...
</query>
...
elemento kindList><
Estos elementos definen la unión del "tipo" de elementos que deben aparecer en la biblioteca. Los valores válidos son:
- calendario
- comunicación
- contacto
- documento
- Correo electrónico
- alimentar
- carpeta
- juego
- instantmessage
- diario
- enlace
- película
- música
- nota
- imagen
- programa
- recordedtv
- searchfolder
- tarea
- vídeo
- webhistory
- artículo
- Otro
condiciones de <elemento>
Las condiciones son filtros con los que se comparan los resultados de búsqueda. Por ejemplo, puede filtrar los resultados que cumplen determinados criterios, como el nombre del autor o el tamaño del archivo. El conjunto de condiciones se integra en un único árbol de condiciones con ramas AND, OR y NOT lógicas.
En el ejemplo siguiente se muestra la estructura de la condición <> elemento.
...
<query>
...
<conditions>
<condition type="" ...>
<attributes>
<attribute attributeID="" .../>
</attributes>
</condition>
</conditions>
</query>
...
El tipo de condición puede ser uno de los siguientes:
Tipo | Descripción | Atributos disponibles |
---|---|---|
andCondition | Combinación de dos o más condiciones secundarias | n/a |
orCondition | Disjunción de dos de más condiciones secundarias | n/a |
notCondition | Negación de una condición secundaria | n/a |
leafCondition | Compara una propiedad con el valor | property, propertyType, operator, value, valuetype |
Los atributos de <leafCondition> elemento identifican las propiedades y los valores con los que se filtran los resultados.
Ejemplo: condiciones de <> Elemento
En el ejemplo siguiente se filtran los resultados de todos los elementos no leídos creados por John. Es decir, la propiedad System.IsRead es false y la cadena "john" aparece en las propiedades 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>
...
propiedades de <elemento>
El <propiedades> elemento describe las propiedades de la propia búsqueda guardada. Los archivos de búsqueda guardados admiten cuatro propiedades: <autor>, <tipo>, <descripción>y etiquetas <>. Estas son solo para uso interno.
Especificación completa del formato de archivo search-ms
A continuación se muestra un ejemplo del XML completo para un archivo de búsqueda guardado.
<?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>
Ejemplos de búsquedas guardadas
A continuación se muestran ejemplos de archivos *.search-ms.
Documentos recientes.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>
Compartido recientemente por 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>