Procesamiento de contenido personalizado con la llamada al servicio web de enriquecimiento de contenido
Obtenga información sobre la llamada del servicio web de enriquecimiento de contenido en SharePoint que permite a los desarrolladores crear un servicio web externo para modificar las propiedades administradas de los elementos rastreados durante el procesamiento de contenido.
La búsqueda en SharePoint permite a los usuarios modificar las propiedades administradas de los elementos rastreados antes de indexarlos llamando a un servicio web de enriquecimiento de contenido externo. La capacidad para modificar las propiedades administradas para los elementos durante el procesamiento de contenido es útil al realizar tareas como la limpieza de datos, extracción de entidades, clasificación y etiquetado.
Figura 1. Mejora del contenido con procesamiento de contenido
En la figura 1 se muestra una parte del proceso que tiene lugar en el componente de procesamiento de contenido. El servicio web de enriquecimiento de contenido es un servicio basado en SOAP que puede crear para recibir una llamada del cliente de servicio web dentro del componente de procesamiento de contenido. En función de la figura 1, el cliente de servicio web hace referencia al operador de enriquecimiento de contenido dentro del componente de procesamiento de contenido; el servicio web hace referencia al servicio web SOAP que implementa. El servicio web recibe una carga configurable del componente de procesamiento de contenido. A continuación, la respuesta resultante del servicio web se combina en el elemento rastreado antes de agregarla al índice de búsqueda. El cliente de servicio web funciona con propiedades administradas que puede configurar como propiedades de entrada o como propiedades de salida. Las propiedades de entrada se envían al servicio web; el servicio web devuelve las propiedades de salida. Algunas propiedades administradas están ocultas o son de solo lectura y no se pueden enviar al servicio web ni recibirlas del servicio web. Consulte How to list all read-only managed properties for the Content Enrichment web service (Cómo enumerar todas las propiedades administradas de solo lectura del servicio web de enriquecimiento de contenido ) para obtener información sobre cómo comprobar qué propiedades administradas son de solo lectura.
Importante
[!IMPORTANTE] El paso de llamada de enriquecimiento de contenido sólo puede configurarse con un extremo de servicio web único. Cualquier tipo de tolerancia a errores o capacidades para admitir varias implementaciones de enrutamiento debe ser controlada por el programador implementa el servicio web. Además, el programador puede tener varias implementaciones de servicio web hospedadas en diferentes extremos; Sin embargo, en cualquier momento dado, sólo uno de estos extremos puede utilizarse en la configuración.
Contrato de servicio web de enriquecimiento de contenido
El cliente de servicio web es un cliente RPC SOAP (versión 1.1) con un comportamiento predefinido. El contrato de servicio de web tiene las siguientes características:
- El componente de procesamiento de contenido, envía una llamada RPC SOAP a un extremo configurable mediante HTTP.
- La carga contiene una matriz de objetos de propiedad.
- El servicio web realiza alguna lógica personalizada en la matriz de objetos de propiedad y devuelve una matriz de objetos de propiedad nueva o modificada.
- El servicio web debe enviar una respuesta al cliente de servicios web dentro de un tiempo de espera.
- Ningún mecanismo de autenticación o cifrado específico se admite como parte del contrato. Sin embargo, puede aplicar su propia seguridad en el mecanismo de transporte.
Configurar al cliente de servicio web de enriquecimiento de contenido
Para configurar al cliente de servicios web, use los siguientes cmdlets de Windows PowerShell:
- Get-SPEnterpriseSearchContentEnrichmentConfiguration
- Set-SPEnterpriseSearchContentEnrichmentConfiguration
- Remove-SPEnterpriseSearchContentEnrichmentConfiguration
- New-SPEnterpriseSearchContentEnrichmentConfiguration
La tabla 1 se enumeran las propiedades que puede configurar mediante los cmdlets de Windows PowerShell que se ha mencionado anteriormente.
Tabla 1. Propiedades que se pueden configurar para el cliente mediante cmdlets de Windows PowerShell
Propiedad de configuración | Descripción | Valor predeterminado |
---|---|---|
Endpoint | Especifica la dirección URL del servicio web externo. | Empty |
InputProperties | Las propiedades administradas que recibe el servicio web externo. | Empty |
OutputProperties | Las propiedades administradas que devuelve el servicio web externo. | Empty |
Timeout | La cantidad de tiempo hasta que los tiempos de servicio web en milisegundos. Función FailureMode, se produce un error en el elemento que va a procesar o se escribe una advertencia en el registro de ULS. | 5000 milisegundos; Intervalo válido [100, 30000]. |
SendRawData | Habilita o deshabilita el envío de datos sin procesar para el servicio web. | Falso. |
MaxRawDataSize | El tamaño máximo de datos sin procesar que se envía al servicio web en kilobytes (KB). Si los datos binarios de un elemento superan este límite, no se envía el elemento. Esto no impide la InputProperties desde la que se envió y el OutputProperties desde que se recibe. | 5120 kilobytes. |
FailureMode | Controla el comportamiento del cliente de servicio web cuando se producen errores. Cuando FailureMode se establece en ERROR, los problemas que se producen durante el procesamiento de enriquecimiento de contenido envían una devolución de llamada errónea para el elemento concreto. Cuando FailureMode se establece en WARNING, el elemento se indiza, sin modificaciones por el servicio web y se escribe una advertencia en el registro de ULS. | Error |
DebugMode | Un modo que cuando se establece en true permite que el cliente de enriquecimiento de contenido enviar todas las propiedades administradas para el cliente sin esperar a cambio de las propiedades. Cualquier propiedad configurado Trigger, InputProperties (propiedad) y OutputProperties (propiedad) se omiten. | Falso. |
Trigger | Un predicado Boolean que se ejecuta en todos los elementos rastreados. Si el predicado se evalúa como true, el registro se envía al servicio web. De lo contrario, el elemento se pasa a través del índice de búsqueda. | Empty |
Cómo obtener una lista de todas las propiedades administradas de sólo lectura para el servicio web de enriquecimiento de contenido
Ciertas propiedades administradas son de solo lectura y no pueden ser de salida desde el servicio web. Estas propiedades se pueden enumerar mediante los cmdlets Get-SPEnterpriseSearchServiceApplication y Get-SPEnterpriseSearchMetadataManagedProperty Windows PowerShell que se muestran en el ejemplo siguiente:
$ssa = Get-SPEnterpriseSearchServiceApplication
Get-SPEnterpriseSearchMetadataManagedProperty -SearchApplication $ssa | ?{$_.IsReadOnly -or $_.MappingDisallowed -or $_.DeleteDisallowed}
Acerca de las condiciones del desencadenador para la configuración de la llamada del servicio web
Una condición de desencadenador es una expresión que se usa para configurar la llamada del servicio web. Si una condición de desencadenador se evalúa como true, el cliente de servicio web realiza una llamada para ese registro. Si una condición de desencadenador se evalúa como false, el cliente de servicio web no realiza una llamada y pasa el elemento rastreado al índice de búsqueda. Como alternativa, si no se ha configurado ninguna condición de desencadenador; todos los elementos se envían al servicio web.
Las condiciones del desencadenador utilización un lenguaje de expresión para hacer referencia a los valores de las propiedades administradas. Puede usar los operadores y funciones en el lenguaje de expresiones para crear condiciones simples o complejos desencadenador para determinar cuándo se debe realizar una llamada del servicio web.
La tabla 2 se enumeran algunos ejemplos de las condiciones del desencadenador.
Tabla 2. Ejemplos de condición de desencadenador para configurar la llamada del servicio web de enriquecimiento de contenido
Expresión | Descripción | Requisitos |
---|---|---|
MP1 > 2 | Devuelve true si el valor de la propiedad administrada denominada MP1 es mayor que 2. | MP1 debe tener un tipo numérico. |
IsNull(MP2) | Devuelve true si la propiedad administrada denominada MP2 no está presente en el elemento rastreado o es empty y null. | MP2 puede ser de cualquier tipo. |
StartsWith(MP1, "sample") y MP2! = 18 | Devuelve true si el valor de la propiedad administrada MP1 comienza con "sample" y el valor de propiedad administrada MP2 no es 18. | MP1 debe ser de tipo string y MP2 debe ser un tipo numérico. |
IsDay (MP1, 2009, 12, 24) | Comprueba si la propiedad administrada MP1 contiene un DateTime que se encuentre en el 24 de diciembre de 2009. | MP1 debe ser de tipo DateTime. |
Consulte Sintaxis de expresiones de desencadenador en SharePoint para ver los elementos que se pueden usar en una expresión de desencadenador y una lista de funciones admitidas.
Implementa el servicio web externo de enriquecimiento de contenido
Para una implementación básica, realice lo siguiente:
- Incluir el Microsoft.Office.Server.Search.ContentProcessingEnrichment.dll que se encuentra en
C:\\Program Files\\Microsoft Office Servers\\15.0\\Search\\Applications\\External
en el proyecto como una referencia. - Implementar IContentProcessingEnrichmentService como un servicio web.