Compartir a través de


Controladores de protocolo del motor de búsqueda Enterprise Search

Los controladores de protocolo extienden las capacidades de búsqueda, ya que hacen disponibles nuevos orígenes de contenido para Enterprise Search de Microsoft Office SharePoint Server 2007. En este tema se proporciona una introducción a los controladores de protocolo y su posición en la arquitectura de Enterprise Search y se describe el uso de las interfaces de controlador de protocolo para implementar un controlador de protocolo para rastrear orígenes de contenido personalizados.

El sistema de indización de Enterprise Search consta de varios componentes diferentes, como se describe en la lista siguiente.

  • Motor de indización Administra el proceso de rastreo de contenido con los orígenes de contenido y las reglas de rastreo que se configuran para el servicio de búsqueda. El motor de indización mantiene una cola de direcciones URL de rastreo y las pasa al demonio de filtro durante el proceso de rastreo de contenido. La cola de direcciones URL de rastreo se rellena inicialmente con las direcciones de inicio de origen de contenido.

  • Orígenes de contenido Especifica el contenido que se va a rastrear.

  • Reglas de rastreo Especifica el contenido que se va a excluir del rastreo, así como las credenciales que se usarán para el mismo.

  • Demonio de filtro Administra las solicitudes de direcciones URL de rastreo del motor de indización al determinar el controlador de protocolo adecuado que se debe usar. Con el controlador de protocolo, el demonio de filtro captura el contenido, extrae y analiza el texto y las propiedades y, a continuación, invoca el IFilter adecuado, si es necesario.

  • Controladores de protocolo Abre los orígenes de contenido en los protocolos nativos y expone documentos y otros elementos que se van a filtrar.

  • IFilters Abre documentos y otros elementos de origen de contenido en su formato nativo y los filtra en fragmentos de texto y propiedades. La implementación de IFilter puede formar parte del componente de controlador de protocolo o puede ser un componente independiente.

Introducción a los controladores de protocolo

Los controladores de protocolo son objetos COM de subproceso libre que implementan la interfaz ISearchProtocol.

Los controladores de protocolo se registran en el servidor de índice en HKLM\Software\Microsoft\OfficeServer\12.0\Search\Setup\ProtocolHandlers.

Esquema de direcciones URL

El formato del esquema de direcciones URL de un controlador de protocolo es scheme://hostname/path.extension.

El esquema de direcciones URL se usa en el demonio de filtro para determinar el controlador de protocolo que se va a utilizar para una dirección URL de rastreo concreta. Para obtener más información, consulte Proceso de rastreo.

Tipos de controladores de protocolo

Enterprise Search proporciona compatibilidad con dos tipos de controladores de protocolo:

  • Jerárquicos Funcionan con orígenes de contenido estructurados, como recursos compartidos de archivos, que incluyen estructuras como directorios o carpetas que deben atravesarse.

  • Basados en vínculos Funcionan con orígenes de contenido, como sitios web, donde los vínculos dentro del contenido indican cómo se atraviesa el origen.

Inicialización de los controladores de protocolo

El demonio de filtro inicializa todos los controladores de protocolo registrados con una llamada al método Init para la implementación ISearchProtocol del controlador de protocolo. El demonio de filtro usa los métodos ISearchProtocol para procesar direcciones URL de rastreo desde el motor de indización. Este proceso se describe en la sección siguiente.

Proceso de rastreo

El motor de indización inicia rastreos de orígenes de contenido. Hay dos tipos de rastreos:

  • Rastreo completo Un rastreo de todo el contenido. La cola de direcciones URL de rastreo se inicializa con las direcciones de inicio para el origen de contenido que se está rastreando. Las entradas duplicadas se quitan de la cola. A medida que avanza el rastreo, el motor de indización agrega direcciones URL de rastreo a la cola según las detecta durante el proceso de filtrado. Los elementos eliminados se quitan del índice de contenido. El proceso de rastreo continúa hasta que la cola de rastreo se vacía.

  • Rastreo incremental Un rastreo sólo del contenido modificado. La cola de direcciones URL de rastreo se inicializa con las direcciones URL de inicio y las direcciones URL del historial de rastreo para ese origen de contenido. El motor de indización pasa la marca de hora al demonio de filtro con la dirección URL de rastreo. Para el contenido de SharePoint, el motor de indización se basa en la característica Registro de cambios en Windows SharePoint Services 3.0, de modo que sólo se rastrea el contenido registrado en el registro de cambios.

Selección del controlador de protocolo

El demonio de filtro determina el controlador de protocolo adecuado para cada dirección URL de rastreo desde el motor de indización, según la dirección URL de rastreo y el esquema de direcciones URL. Por ejemplo, para la dirección URL de rastreo https://www.microsoft.com/, el demonio de filtro selecciona el controlador del protocolo HTTP predeterminado, que es un controlador de protocolo basado en vínculos.

Para la dirección URL de rastreo \\CentralSales\Public\, el demonio de filtro selecciona el controlador de protocolo de archivos predeterminado, que es un controlador de protocolo jerárquico.

Devolución del descriptor de acceso de dirección URL

Se llama al método CreateAccessor de la interfaz ISearchProtocol por separado para cada dirección URL de rastreo.

Nota

Sólo se procesa una dirección URL de rastreo por llamada al método CreateAccessor, pero puede haber varias llamadas a este método de forma simultánea. Como resultado, es posible que haya varios subprocesos trabajando en paralelo.

El método CreateAccessor devuelve un objeto URLAccessor que el demonio de filtro utiliza para procesar la dirección URL de rastreo. El objeto URLAccessor se implementa en la interfaz IUrlAccessor.

Filtrado del contenido

La interfaz IUrlAccessor contiene los métodos BindToFilter y BindToStream; debe implementar al menos uno de estos métodos para cada dirección URL de rastreo.

BindToFilter

Si la dirección URL de rastreo no está asociada con una secuencia binaria que analiza uno de los filtros estándar, debe implementar el método BindToFilter. En este escenario, también se debe implementar el IFilter como parte del objeto URLAccessor.

También se puede implementar el método BindToFilter para extraer los metadatos asociados con los elementos de contenido. El controlador de protocolo envía fragmentos de datos que contienen las propiedades y los vínculos al motor de indización.

Si la dirección URL de rastreo es una carpeta o un directorio, debe implementar el método BindToFilter para que el controlador de protocolo enumere el contenido de la carpeta o el directorio. A continuación, el controlador de protocolo debe emitir la propiedad PID_GTHR_DIRLINK_WITH_TIME para cada elemento. Esta propiedad contiene la dirección URL y la marca de hora del elemento. Durante un rastreo incremental, una vez que el motor de indización recibe la propiedad PID_GTHR_DIRLINK_WITH_TIME para un elemento determinado, coteja la marca de hora con el valor almacenado para ese elemento en el historial de rastreo. Si la marca de hora no ha cambiado, no se rastrea el elemento. Si no hay ningún cambio en el directorio o si no ha cambiado un elemento con respecto a la marca de hora pasada por el rastreador, el controlador de protocolo debe devolver PRTH_S_NOT_MODIFIED para el elemento de contenido y no se necesita seguir procesando el elemento. Para obtener más información acerca de PRTH_S_NOT_MODIFIED, consulte Mensajes de error del controlador de protocolos.

Por esta razón, los rastreos incrementales son más eficaces, ya que el controlador de protocolo no necesita enlazarse a cada elemento de forma individual, sólo a los que han cambiado.

Nota

Si el método BindToFilter del controlador de protocolo no implementa la emisión de PID_GTHR_DIRLINK_WITH_TIME, y el método CreateAccessor no admite la devolución de PRTH_S_NOT_MODIFIED, los rastreos incrementales equivalen en esencia a los rastreos completos.

BindToStream

Implemente el método BindToStream si hay una secuencia binaria asociada con la dirección URL de rastreo que se debe analizar mediante uno de los filtros estándar, como el filtro de texto, HTML o de Microsoft Office. El método BindToStream invoca el filtro adecuado para extraer el contenido del elemento.

Para obtener más información acerca de cómo crear un filtro, consulte How to Write a Filter for Use by SharePoint Portal Server 2003 and Other Microsoft Search-Based Products.

El demonio de filtro llama a los métodos BindToFilter y BindToStream sólo una vez para cada dirección URL de rastreo. Uno de los métodos debe realizarse correctamente para que se filtre el elemento de contenido asociado con la dirección URL de rastreo.

Seguridad

El método GetSecurityDescriptor recupera la información de seguridad asociada con el elemento de contenido, como los distintos tipos de acceso permitidos para determinados usuarios y grupos de usuarios. Si implementa este método, el demonio de filtro proporciona al motor de indización información de seguridad sobre el elemento de contenido. El motor de indización incorpora esta información en el índice de texto completo con el contenido del documento.

El motor de consulta usa la información de seguridad cuando ejecuta consultas en el índice de texto completo para determinar si el usuario que envía una consulta de búsqueda tiene acceso a los elementos en los resultados. Basándose en esto, el motor de consulta realiza el recorte de seguridad de los resultados de búsqueda, de manera que los usuarios sólo ven los elementos a los que tienen acceso en los resultados de la búsqueda. Por tanto, si no se implementa el método GetSecurityDescriptor, todos los usuarios podrán recuperar y ver el contenido del elemento en los resultados de la consulta de búsqueda. Para obtener más información sobre el recorte de seguridad, consulte Modelo de seguridad del motor de búsqueda Enterprise Search.

En esta sección

Referencia del controlador de protocolo

Vea también

Referencia

How to Write a Filter for Use by SharePoint Portal Server 2003 and Other Microsoft Search-Based Products

Otros recursos

Arquitectura del motor de búsqueda Enterprise Search
Introducción a los orígenes de contenido