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
- <Elemento viewInfo>
- <Elemento query>
- <Elemento properties>
- Especificación completa del formato de archivo search-ms
- Ejemplos 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 actualizados. El archivo de búsqueda guardado almacena la consulta en un formato en el que Windows Search puede actuar, especificar 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
- <query> especifica (información de consulta de búsqueda)
- <properties> especifica las 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 | Azulejos |
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 debe usarse. | N/D |
DisplayName | Solo para uso interno. No debe usarse. | N/D |
autoListFlags | Solo para uso interno. No debe usarse. | N/D |
folderFlags | Solo para uso interno. No debe usarse. | N/D |
taskFlags | Solo para uso interno. No debe usarse. | N/D |
<viewInfo> Elementos secundarios
Los elementos secundarios del <elemento viewInfo> 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 se mostrarán en la vista de resultados. El usuario puede cambiar esta lista. | Cualquier propiedad del sistema. |
frequentlyUsedColumns | Solo para uso interno. No debe usarse. | N/D |
columnChooserColumns | Solo para uso interno. No debe usarse. | N/D |
Groupby | Especifica una única 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 la que ordenar los resultados. | Hasta cuatro propiedades del sistema. El usuario puede cambiar esta lista. |
stackList | Solo para uso interno. No debe usarse. | N/D |
<Elemento query>
El <elemento query> 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>
...
<consultar> elementos secundarios
En la tabla siguiente se describen los elementos secundarios del <elemento scope> .
Elemento | Descripción | Valor |
---|---|---|
providers | Solo para uso interno. No debe usarse. | N/D |
Subconsultas | Solo para uso interno. No debe usarse. | N/D |
Ámbito | 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 de acceso 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 scope>
El <elemento scope> identifica las ubicaciones que se van a incluir o excluir de la búsqueda. El <elemento scope> debe contener al menos un <elemento secundario include> presente y cero o más <elementos exclude> . Las ubicaciones se pueden especificar como una ruta de acceso (se admiten variables de entorno) o como identificador de carpeta conocido. Además, cada una de estas ubicaciones se puede especificar 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 <elemento de ámbito> que buscará en la carpeta especial de 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
- communication
- contact
- documento
- feed
- folder
- Juego
- instantmessage
- Diario
- link
- Película
- music
- nota
- picture
- programa
- recordedtv
- searchfolder
- task
- video
- webhistory
- item
- otro
<Elemento conditions>
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 condición con ramas AND, OR y NOT lógicas.
En el ejemplo siguiente se muestra la estructura del <elemento condition> .
...
<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/D |
orCondition | Disjunción de dos de más condiciones secundarias | N/D |
notCondition | Negación de una condición secundaria | N/D |
leafCondition | Compara una propiedad con el valor | property, propertyType, operator, value, valuetype |
Los <atributos del elemento leafCondition> identifican las propiedades y los valores con los que se filtran los resultados.
Ejemplo: <elemento conditions>
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>
...
<Elemento properties>
El <elemento properties> describe las propiedades de la propia búsqueda guardada. Los archivos de búsqueda guardados admiten cuatro propiedades: <autor>, <tipo>, <descripción> y <etiquetas>. Son solo para uso interno.
Especificación completa del formato de archivo search-ms
A continuación se muestra un ejemplo del XML completo de 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>
Música reciente.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>