Compartir a través de


Notificación del índice de cambios (características heredadas del entorno de Windows)

Nota

Windows Desktop Search 2.x es una tecnología obsoleta que originalmente estaba disponible como complemento para Windows XP y Windows Server 2003. En versiones posteriores, use Windows Search en su lugar.

Con Microsoft Windows Desktop Search (WDS) 2.6, los controladores de protocolo de un almacén de datos determinado pueden indicar al indexador WDS cuando los datos de su almacén han cambiado. Esto mejora el rendimiento asegurándose de que el indexador no rastrea todo el almacén en índices incrementales. Con las API de notificación, los controladores de protocolo pueden notificar al indexador que se ha movido o eliminado un elemento, y pueden agregar ámbitos a la cola de rastreo de las direcciones URL del indexador de WDS que requieren indexación. La notificación resulta útil para aplicaciones como el correo electrónico, donde el controlador de protocolo supervisa el almacén y notifica al indexador que los elementos han cambiado y requieren indexación.

ISearchItemsChangedSink

Los controladores de protocolo notifican al indexador los cambios a través de la interfaz ISearchItemsChangedSink . La información sobre los cambios de datos debe recopilarse en SEARCH_ITEM_CHANGE estructuras y SEARCH_KIND_OF_CHANGE tipos de enumeración y, a continuación, comunicarse con el indexador a través del método OnItemsChanged de la interfaz ISearchItemsChangedSink .

Para acceder a esta interfaz, los controladores de protocolo personalizados primero deben crear una instancia de un objeto ISearchManager para obtener acceso al objeto ISearchCatalogManager . Desde allí, se puede crear una instancia de un objeto ISearchItemsChangedSink y notificar al indexador de los cambios de datos.

El método OnItemsChanged permite recopilar y comunicar los cambios de datos en el almacén de datos del cliente para iniciar la indexación.

Dirección Variable Descripción
En dwNumberofChanges Número total de cambios en la notificación.
En DataChangeEntries[] Todas las notificaciones de cambio en una matriz de estructuras de SEARCH_ITEM_CHANGE.
Fuera dwBatchId Identificador de lote que se devolverá con errores.
Fuera hrCompletionCodes[] Indica si se aceptó cada dirección URL para la indexación.

 

La estructura SEARCH_ITEM_CHANGE identifica el tipo de cambio que se produjo, así como la dirección URL actual del elemento y la dirección URL anterior, si procede. La estructura se define de la siguiente manera:

Nombre de propiedad Tipo de propiedad Descripción
Change SEARCH_KIND_OF_CHANGE Tipo de cambio que se está notificando.
URL LPWSTR Dirección URL del objeto que ha cambiado.
OldURL LPWSTR Si la notificación es un movimiento, se proporciona la dirección URL antigua y debe ser única.
Priority SEARCH_NOTIFICATION_PRIORITY Prioridad del cambio.

 

La enumeración SEARCH_KIND_OF_CHANGE se define de la siguiente manera:

Valor de enumeración Value Descripción
SEARCH_CHANGE_ADD 0 La notificación es para una dirección URL adicional.
SEARCH_CHANGE_DELETE 1 La notificación es para la eliminación de una dirección URL.
SEARCH_CHANGE_MODIFY 2 La notificación es que se ha modificado una dirección URL.
SEARCH_CHANGE_MOVE_RENAME 3 La notificación es para mover y cambiar el nombre de un objeto a una nueva dirección URL.
SEARCH_CHANGE_SEMANTICS_DIRECTORY 0x10000 La notificación es para una dirección URL de contenedor.
SEARCH_CHANGE_SEMANTICS_SHALLOW 0x20000 La notificación es para una dirección URL de contenedor que solo debe tener sus propiedades de contenedor indizada.
SEARCH_CHANGE_SEMANTICS_SECURITY 0x40000 La notificación es para una dirección URL o dirección URL de contenedor que ha cambiado sus propiedades de seguridad.

 

La enumeración SEARCH_NOTIFICATION_PRIORITY se define de la siguiente manera:

Valor de enumeración Value Descripción
SEARCH_NORMAL_PRIORITY 0 Solo se debe usar una prioridad normal al indexar la dirección URL. Estas notificaciones se procesan antes de la indexación incremental en segundo plano normal de los archivos y almacenes de un usuario.