Cómo indizar los datos locales de la aplicación

[ Este artículo está destinado a desarrolladores de Windows 8.x y Windows Phone 8.x que escriben aplicaciones de Windows en tiempo de ejecución. Si estás desarrollando para Windows 10, consulta la documentación más reciente

Puedes indizar los datos almacenados localmente de tu aplicación mediante el servicio de Windows Search (WSS).

Si tu aplicación administra archivos como documentos, correo o archivos multimedia (fotografías, música, vídeo, etc.), hay un requisito fundamental que requiere indizar el contenido o las propiedades de los archivos estructuralmente, de manera que los usuarios puedan administrar y recuperar los datos de forma rápida y eficaz. No necesitas crear el indizador en la aplicación. Como desarrollador de la aplicación, dispones de una opción cómoda y segura: solo tienes que habilitar WSS para indizar los datos de tu aplicación.

Las principales ventajas de usar WSS para indizar los datos de tu aplicación son:

  • WSS admite la indización de todo el texto del contenido de los tipos de documento más comúnmente utilizados. Además, WSS también admite la indización de las propiedades de archivo.
  • Con el contrato de Buscar integrado y las API de archivo, los datos indizados se pueden recuperar y reutilizar fácilmente.
  • Windows Search respeta la configuración de seguridad del sistema de archivos, que mantiene los datos de la aplicación indizados almacenados de forma segura en el indizador de Windows.

Windows Search funciona con todas las aplicaciones de la Tienda Windows, incluidas las que se escriben con JavaScript, C#, C++ y VB.Net.

Habilitar Windows Search para tu aplicación

Solicitar a Windows Search que indice los datos de la aplicación no te supondrá ningún esfuerzo. Tienes que crear una carpeta denominada indexed (indizada) en la carpeta de datos de la aplicación y almacenar en ella el contenido que debe indizarse. Windows Search trata la carpeta indizada igual que otras ubicaciones de indización del disco duro. Indizará el contenido o los metadatos (propiedades) de los archivos de esta carpeta y todas sus subcarpetas. Aquí te mostramos una lista de consideraciones importantes:

  1. La carpeta indizada debe seguir estas pautas:
    • La carpeta indizada debe crearse en la raíz localFolder. Windows Search indiza el contenido de esta carpeta en profundidad. Se indizarán todos los archivos almacenados localmente en esta carpeta o sus subcarpetas (incluidos todos los niveles de subcarpetas). Solo se permite una carpeta indizada por aplicación.
    • El nombre de la carpeta indizada (indexed) no distingue entre mayúsculas y minúsculas.
    • Aunque la carpeta de datos de aplicación se denomina localFolder en la API de Windows en tiempo de ejecución, su nombre es LocalState en la unidad de disco duro física. Si quieres acceder a esta carpeta con fines de prueba, usa esta ruta de acceso a la carpeta: %user%\ AppData\Local\Packages\%packageName%\LocalState
    • La estructura de carpetas dentro de la carpeta indizada (indexed) puede ser profunda, pero la API de Windows no permite que la ruta de acceso a un archivo o carpeta tenga una longitud superior a MAX_PATH, que está establecida en 260 caracteres. Por lo tanto, debes asegurarte de que los archivos o carpetas situados en la carpeta indizada no excedan este límite. Para obtener más información acerca de MAX_PATH, consulta el tema sobre el límite máximo de la longitud de las rutas de acceso.
  2. Windows Search solo indiza los datos almacenados de forma local. En otras palabras, solo se indizarán los archivos que estén almacenados localmente en la carpeta indizada o en sus subcarpetas.
  3. La carpeta indizada no se puede crear durante la instalación. Solo se puede crear cuando se esté ejecutando la aplicación. Como Windows Search tarda en completar el proceso, según el tamaño del contenido, te recomendamos que crees la carpeta indizada cuando la aplicación se ejecute por primera vez. Después de crear la carpeta indizada, Windows Search indizará de forma automática el contenido de la aplicación. Si se modifican (se agregan, eliminan o actualizan) los archivos o subcarpetas, Windows Search reprogramará automáticamente un proceso de indización y mantendrá actualizado el indizador con los cambios. Ten en cuenta que Windows Search supervisa el uso de la CPU para optimizar el proceso de indización en su propia programación.

Seguridad

WSS respeta la configuración de seguridad del sistema de archivos de Windows para que los datos de la aplicación indizados se almacenen en el indizador de forma segura. En particular:

  • Cuando hay varias cuentas de usuario en el mismo equipo: las aplicaciones de la Tienda Windows se instalan para cada cuenta de usuario. Si hay varios usuarios en el mismo equipo usando la misma aplicación, cada instancia de la aplicación crea su propia carpeta indizada en una ruta de acceso física diferente. Por lo tanto, un usuario no puede acceder a los datos indizados de otras cuentas, a menos que se le conceda acceso a esa ruta de acceso física.
  • Cuando se indizan datos de varias aplicaciones: el sistema de archivos de Windows no permite que una aplicación acceda directamente a los datos de otra aplicación. Por lo tanto, una aplicación no tiene acceso a los datos indizados de otra aplicación.

Recuperación del contenido indizado

Una vez indizados los datos de la aplicación, esta puede recuperar los datos mediante la API de archivo.

Temas relacionados

Servicio de Windows Search

Cómo el servicio de Windows Search indiza el contenido mediante IFilters

Adición de búsqueda a aplicaciones de la Tienda Windows