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. |