Compartir a través de


Uso del Administrador de catálogos

Las interfaces ISearchCatalogManager e ISearchCatalogManager2 proporcionan métodos para administrar un catálogo de búsqueda, como provocar reindización o establecer tiempos de espera. Aunque Windows Search actualmente solo usa un catálogo, esta interfaz se diseñó para proporcionarle un mayor control para administrar varios catálogos de forma independiente. La interfaz administra el catálogo de las maneras siguientes:

  • Acceso a otras interfaces: recuperar otras interfaces relacionadas con la búsqueda requeridas por el Administrador de ámbitos de rastreo, las notificaciones de cambio de datos y la interfaz ISearchQueryHelper .
  • Contenido del catálogo: garantiza que los nuevos datos se indexan y que otras aplicaciones y componentes funcionan correctamente al forzar una nueva indexación de todo o parte del catálogo o al restablecer todo el catálogo.
  • Propiedades del catálogo: establecer propiedades que determinan cómo administra el catálogo los tiempos de espera al conectarse a controladores de protocolo y cómo se tratan las marcas diacríticas en las búsquedas.
  • Estado del catálogo: obtener información sobre el catálogo, incluido el estado, el tamaño y el estado de actividad actual.

Este tema se organiza de la siguiente manera:

Algunas interfaces útiles en la plataforma windows Search requieren una instancia del Administrador de catálogos para poder usarlas. Para crear un Administrador de catálogos para un catálogo especificado, llame al método ISearchManager::GetCatalog . Los métodos del Administrador de catálogos se pueden usar para crear instancias y devolver interfaces basadas en el catálogo especificado.

Método Descripción
GetQueryHelper Obtiene una instancia de la interfaz ISearchQueryHelper del catálogo actual, para que pueda compilar consultas fácilmente.
GetCrawlScopeManager Obtiene una instancia de ISearchCrawlScopeManager para este catálogo de búsqueda, para permitir a los desarrolladores modificar el ámbito de rastreo del indexador de búsqueda de Windows.
GetItemsChangedSink Obtiene una instancia de la interfaz ISearchItemsChangedSink , que las aplicaciones cliente usan para notificar al indexador los cambios cuando el cliente quiere que la información de estado de indexación sobre el elemento admita notificaciones administradas por el proveedor. Consulte Notificación del índice de cambios para obtener más información.
GetPersistentItemsChangedSink Obtiene una instancia de ISearchPersistentItemsChangedSink, que las aplicaciones cliente usan para notificar al indexador los cambios cuando el cliente no quiere la información de estado de indexación (notificaciones administradas por el indexador). Consulte Notificación del índice de cambios para obtener más información.

Administración del contenido del catálogo

Hay dos tareas principales implicadas en la administración del catálogo: volver a indexar todas o algunas de las direcciones URL en el ámbito de rastreo del indexador y restablecer todo el catálogo subyacente. Al volver a indexar direcciones URL, los datos antiguos permanecen en el catálogo hasta o a menos que se reemplacen por datos nuevos. Al restablecer el catálogo, se vuelve a generar todo el catálogo y se vuelven a indexar todas las direcciones URL del ámbito de rastreo. Este proceso puede tardar mucho tiempo y solo debe usarse como último recurso para resolver problemas como un índice posiblemente dañado.

Al instalar una nueva aplicación, un controlador de protocolo o un filtro, la aplicación de instalación debe agregar su directorio o raíz al ámbito de rastreo para asegurarse de que el indexador incluye la ubicación de los datos de esa aplicación. Si los datos no aparecen en el catálogo después de que el indexador haya rastreado su ámbito de rastreo, primero debe asegurarse de que la ubicación de los datos se incluye en el ámbito de rastreo. Puede agregarlo mediante la interfaz de usuario para las opciones de Búsqueda de Windows o el Administrador de ámbitos de rastreo. Si la ubicación parece estar en el ámbito de rastreo, puede forzar manualmente una nueva indexación de todas las direcciones URL en el ámbito de rastreo del indexador o un subconjunto, mediante los métodos siguientes de la interfaz ISearchCatalogManager .

Método de reindización Descripción
ISearchCatalogManager::Reindex Vuelve a indexar todas las direcciones URL del catálogo. La información antigua permanecerá hasta que se reemplace por nueva información.
ISearchCatalogManager::ReindexMatchingURLs
ISearchCatalogManager::ReindexSearchRoot
Vuelve a indexar las direcciones URL que coinciden con el patrón o comienzan en una raíz determinada (por ejemplo, file:///C:\Foldername\Subfoldername\). Esto es útil para volver a rastrear todo en un directorio determinado o con una extensión determinada, como cuando se instala una aplicación.
PrioritizeMatchingURLs Indica al indexador que dé prioridad a los elementos de indexación con direcciones URL que coincidan con un patrón especificado sobre cómo completar otras tareas de indexación.

Restablecer el índice. Puede restablecer todo el índice con una llamada a ISearchCatalogManager::Reset. Esto restablece el catálogo subyacente recompilando las bases de datos y realizando un índice completo de todas las direcciones URL del ámbito de rastreo. Este proceso puede tardar mucho tiempo y solo debe usarse como último recurso para resolver problemas como un índice posiblemente dañado.

Importante

Debido a la ralentización en la indexación que estos métodos pueden causar, se deben usar cuidadosamente cuando se intenta identificar problemas de indexación o catálogo. En primer lugar, asegúrese de que las raíces de búsqueda y las reglas de ámbito se agregan en el Administrador de ámbitos de rastreo y, a continuación, asegúrese de que el bit FANCI (atributo de archivo no indexado de contenido) esté establecido correctamente para archivos y carpetas. Si ha confirmado que son correctos, pruebe ReindexSearchRoot primero y Reindex last. Si ninguno de estos trabajos funciona, pruebe a Restablecer como último recurso.

Para obtener información relacionada, vea Notificar el índice de cambios y Consultar el índice con ISearchQueryHelper.

Administración del estado del catálogo

El Administrador de catálogos se puede usar para obtener el estado del catálogo para las aplicaciones que quieran personalizar cómo se administra el catálogo (por ejemplo, una aplicación de supervisión personalizada de "Estado del catálogo"). Pero el Administrador de catálogos no suele ser necesario para la mayoría de los escenarios de desarrollo relacionados con la búsqueda. Los usos comunes serían para una aplicación de supervisión de "Estado del catálogo" o una aplicación de estilo Panel de control.

En la tabla siguiente se describen los métodos de ISearchCatalogManager que se usan para administrar el estado del catálogo.

Método Descripción
URLBeingIndexed Obtiene la dirección URL que se está indizando actualmente. Este método sería útil si intentaba identificar si el indizador estaba "bloqueado" en un elemento.
NumberOfItems Obtiene el número de elementos del catálogo.
NumberOfItemsToIndex Recupera la siguiente información sobre los elementos que se van a indexar:
  • plIncrementalCount: el número de elementos que se van a indexar en el siguiente índice incremental
  • plNotificationQueue: el número de elementos de la cola de notificaciones. Esta información sería útil para una aplicación de notificación que necesitaba comprobar si el indexador recibe las notificaciones que envía la aplicación.
  • plHighPriorityQueue: el número de elementos de la cola de prioridad alta. Los elementos de plHighPriorityQueue se indexan primero.
GetCatalogStatus Obtiene el estado del catálogo y devuelve un valor de enumeración que proporciona el estado actual. A continuación se muestran los posibles estados de catálogo:
  • Inactivo: no se necesita ninguna indexación.
  • En pausa: la indexación está en pausa (debido a un uso elevado de la batería o cpu alta, por ejemplo).
  • Recuperación: la indexación se está recuperando.
  • Rastreo completo: el indexador realiza un rastreo completo del ámbito de rastreo.
  • Rastreo incremental: indexador está realizando un rastreo incremental.
  • Notificaciones de procesamiento: indexador está procesando notificaciones.
  • Apagado: el indexador se está cerrando.
get_Name Obtiene el nombre del catálogo actual especificado en el método ISearchManager::GetCatalog . Actualmente, el único catálogo admitido es SystemIndex.

Administrar propiedades del catálogo

Hay tres propiedades de catálogo que puede administrar con el Administrador de catálogos:

  • Sensibilidad diacrítica. Los diacríticos son marcas de énfasis agregadas a letras para indicar el significado o la pronunciación de una palabra. Esta propiedad determina si el catálogo es sensible a los diacríticos y es importante cuando usted o los usuarios buscan e indexar texto en varios idiomas. Por ejemplo, con esta propiedad establecida en FALSE, el catálogo trataría "resume" y "resumé" como si fueran la misma palabra.
  • Tiempos de espera de conexión. Esta propiedad representa la cantidad de tiempo que se espera para una respuesta de conexión de un servidor o almacén de datos, tal como se representa en una estructura de TIMEOUT_INFO . Puedes usar esta propiedad para ajustar Windows Search.
  • Tiempos de espera de datos Esta propiedad representa la cantidad de tiempo para esperar una transacción de datos entre el indexador y un controlador de protocolo o filtro, tal como se representa en una estructura de TIMEOUT_INFO . Si ha transcurrido este tiempo, el proceso del demonio de filtro finaliza para evitar interbloqueos y otros problemas de recursos.

Las dos últimas propiedades están pensadas principalmente para uso futuro. Cada una de estas propiedades tiene get métodos y put .

Método Descripción
get_DiacriticSensitivity /
put_DiacriticSensitivity
TRUE si el catálogo debe diferenciar palabras con diacríticos. FALSE si el catálogo debe omitir diacríticos. Cambiar esta propiedad requiere volver a generar el índice porque es posible que las claves del índice no sean válidas.
get_ConnectTimeout /
put_ConnectTimeout
El tiempo, en segundos, que el indexador debe esperar una respuesta de conexión desde un servidor o almacén de datos. Establecer este valor demasiado alto puede provocar retrasos si muchos sitios no responden. Establecerlo demasiado bajo puede dar lugar a que algunos sitios no se rastreen.
get_DataTimeout /
put_DataTimeout
Tiempo, en segundos, que el indexador debe esperar a una transacción de datos.

Ejecución en modo con privilegios elevados

Cualquier llamada de método que actualice SystemIndex requiere que la aplicación se ejecute con privilegios elevados. De lo contrario, se producirá un error en la aplicación con un error de acceso denegado.

Administración del índice

Interfaces para administrar el índice

Uso del Administrador de búsqueda

Uso del Administrador de ámbitos de rastreo