Mejorando el archivo modelo BDC para la búsqueda en SharePoint
Obtenga información sobre las propiedades del modelo de metadatos de BDC que se aplican a los conectores de indexación BCS que permiten a Search in SharePoint rastrear datos externos.
Búsqueda de propiedades para los archivos de modelo BDC
El marco del conector en Buscar le permite rastrear datos externos, haciéndolos disponibles en resultados de búsqueda a través de conectores de indización BCS. El rastreador usa el conector de indización BCS para comunicarse con el origen de datos externo. En el momento del rastreo, el rastreador llama al conector de indización BCS para recuperar los datos del sistema externo y devolverlos al rastreador.
Los conectores de indización BCS constan de:
Archivo de modelo BDC: archivo que proporciona la información de conexión al sistema externo y la estructura de los datos.
Conector: componente que contiene el código que conecta con el sistema externo y analiza el acceso a direcciones URL e identificadores BCS.
El modelo de metadatos BDC incluye varias propiedades que son aplicables a Buscar, muchas de los cuales es necesario que admitan el rastreo del conector de indización BCS.
En la tabla siguiente se describen las propiedades del modelo BDC que son aplicables a Buscar.
Tabla 1. Búsqueda de propiedades para los archivos de modelo BDC
Nombre | Objeto de metadatos | Descripción |
---|---|---|
ShowInSearchUI |
Model |
Especifica que en la interfaz de usuario de la búsqueda debe mostrarse un elemento de LobSystemInstance del archivo de modelo. Este valor se omite en conectores personalizados. |
InputUriProcessor |
Lobsystem |
Especifica el nombre de la clase que procesa la dirección URL de entrada antes de pasarla al conector. Se aplica a conectores de indización .NET y BCS personalizados. Para más información, consulte Creación de un conector de indización personalizado. |
OutputUriProcessor |
Lobsystem |
Especifica el nombre de la clase que procesa la dirección URL de salida antes de pasarla al conector. Se aplica a conectores de indización .NET y BCS personalizados. Para más información, consulte Creación de un conector de indización personalizado. |
SystemUtilityTypeName |
Lobsystem |
Especifica el nombre de la clase que implementa la clase StructuredRepositorySystemUtility. Se aplica a conectores de indización BCS personalizados. Para más información, consulte Creación de un conector de indización personalizado. |
Título |
Entidad |
Especifica el título del tipo de contenido externo que se va a mostrar en los resultados de la búsqueda. |
DefaultLocale |
Entidad |
Especifica la cadena de configuración regional. Puede invalidar este valor mediante las propiedades LCIDField o la propiedad CultureField. |
RootFinder |
Método |
Especifica el método Finder que se usa para enumerar los elementos que se van a rastrear. Por ejemplo, cuando se conecta a una base de datos, puede ser la instrucción SELECT o la lista de tablas que se van a rastrear. |
DirectoryLink |
Método |
Especifica que BCS debe navegar por las asociaciones. Es necesario para el rastreo jerárquico. |
DeletedCountField |
Método |
Especifica el valor de la cuenta eliminada. Esta propiedad se omite a menos que contenga un valor entero mayor que cero. |
WindowsSecurityDescriptorField |
Método |
Especifica el descriptor de seguridad de Windows para el elemento. Si no se especifica, se llama al método GetSecurityDescriptor. Si no se ha definido GetSecurityDescriptor, todos los elementos externos se asignan a la lista de control de acceso (ACL) Todos. |
AuthorField |
Método |
Especifica el nombre de autor que se va a mostrar en los resultados de la búsqueda. |
DisplayUriField |
Método |
Especifica la dirección URL que se va a mostrar en los resultados de la búsqueda. Si se especifica, esta propiedad invalida la dirección URL de página de perfil que proporcionó BCS. Si no se especifica, la dirección URL que se muestra en los resultados de la búsqueda comenzará con bdc3:// y el explorador no la comprenderá. |
LastModifiedTimeStampField |
Método |
Especifica la marca de tiempo del elemento externo que se va a mostrar en los resultados de la búsqueda. Este valor también se usa para el rastreo incremental. |
DescriptionField |
Método |
Especifica la descripción que se va a mostrar en los resultados de la búsqueda. |
LCIDField |
Método |
Especifica el identificador de configuración regional (LCID) de DescriptionField. Si no se especifica, se usa el separador de palabras predeterminado. |
CultureField |
Método |
Especifica la referencia cultural para DescriptionField. |
Extensión |
Método |
Especifica la extensión de nombre de archivo para la secuencia rastreable. Si no se especifica, la extensión predeterminada es .txt. |
Mimetype |
Método |
Especifica el tipo MIME para la secuencia rastreable. Si no se especifica, la extensión predeterminada es .txt. Si se especifican los campos Extension y MimeType, se usa el valor especificado en el campo MimeType. |
UseClientCachingForSearch |
Método |
Especifica si el rastreador almacena en caché el contenido durante la enumeración. Si se almacena en caché el contenido, entonces el rastreador no vuelve al origen de contenido cuando rastree elementos individuales. |
EnumerateIdsOnly |
FilterDescriptor |
Especifica si se devuelven identificadores solo en IDEnumerator. |
CrawlStartTime |
FilterDescriptor |
Contiene la hora de inicio del último rastreo. |
SynchronizationCookie |
FilterDescriptor |
Especifica que el origen de contenido externo devuelve una cookie después de un rastreo, la cual a continuación se vuelve a enviar mediante el conector de indización durante la siguiente llamada de enumeración. El origen de contenido externo usa la cookie para determinar qué ha cambiado desde el último rastreo. Esta propiedad se usa con instancias de método ChangedIDEnumerator y DeletedIDEnumerator. |
Property |
Typedescriptor |
Especifica la matriz struct usada en la búsqueda de propiedades. Consiste en lo siguiente:
|
Texto |
Typedescriptor |
Especifica la matriz struct usada en la búsqueda de datos adjuntos. Consiste en lo siguiente:
|
Cambios en el archivo de modelo BDC para mejorar el rendimiento al rastrear datos externos
Cuando desee crear un archivo de modelo BDC para un sistema externo que desee habilitar para la búsqueda, puede mejorar el archivo de modelo para optimizar el rendimiento al rastrear sistemas externos. En esta sección se describen formas de modificar el archivo de modelo BDC para mejorar el rendimiento.
Uso de E/S de propiedades en línea al recuperar datos de gran escala
En general, si algunos de los datos devueltos para un elemento son de gran escala, en lugar de devolverlos con el método SpecificFinder, se debe usar uno de los siguientes métodos especializados para recuperar los datos:
Use el método BinarySecurityDescriptorAccessor cuando se pase una lista de control de acceso (ACL) de seguridad en lugar de la propiedad WindowsSecurityDescriptor.
Use el método StreamAccessor al pasar secuencias.
A menos que la latencia de red sea alta, el rendimiento mejorado suele ser preferible al costo de un recorrido adicional al sistema externo.
Optimización de la enumeración al rastrear sistemas externos
No enumere más de 100.000 elementos por llamada al sistema externo. Las enumeraciones de larga ejecución pueden provocar interrupciones intermitentes e impedir que se lleve a cabo un rastreo. Se recomienda que el modelo BDC estructure los datos en carpetas lógicas que se puedan enumerar de forma individual, como se muestra en el ejemplo siguiente.
En este ejemplo se muestra la enumeración de una tabla de base de datos con un millón de filas, pero con un conjunto fijo de valores en ColumnaA. En este escenario, puede considerar ColumnA como el tipo de contenido externo y escribir un enumerador para este conjunto de valores mediante la siguiente instrucción SQL.
SELECT DISTINCT( ISNULL(ColumnA,'unknown')) as ColumnA FROM table
A continuación, defina el buscador específico mediante la siguiente instrucción SQL.
SELECT DISTINCT( ISNULL(ColumnA,'unknown')) as ColumnA FROM table where ColumnA = @Value
Por último, debe definir la operación de navegación de la asociación, de la siguiente manera.
Select * from table where ColumnA=@value
Cualquier método debe comenzar con la devolución de resultados en menos de dos minutos o el rastreador cancelará la llamada. Por ejemplo, una instrucción SQL compleja que usa una cláusula LIKE puede tardar más de dos minutos en completarse y haría que el rastreador cancelara la llamada.
Mejora de la velocidad de rastreo con la propiedad UseClientCachingForSearch
La propiedad UseClientCachingForSearch mejora la velocidad de los rastreos completos al almacenar en caché el elemento durante la enumeración. El uso de esta propiedad también se recomienda cuando se implementan rastreos incrementales que se basan en registros de cambios, ya que aumenta la velocidad de los rastreos incrementales.
Importante: Si los elementos tienen más de 30 kilobytes de media, no establezca esta propiedad, ya que provocará un número significativo de errores de caché y negará las ganancias de rendimiento.
Seguridad en los archivos de modelo BDC
Si el repositorio usa la autenticación NTLM, se recomienda que especifique la autenticación de paso a través para el rastreo.
Es posible que las páginas de perfil requieran el uso del Servicio de almacenamiento seguro debido al problema de delegación del salto entre redes desde el servidor web front-end. Si se produce este problema, puede optimizar el rastreo mientras continúa permitiendo páginas de perfil mediante la creación de dos instancias de LobSystemInstance similares. La primera instancia debe usar credenciales de la autenticación del Servicio de almacenamiento seguro. Esta instancia no debe contener la propiedad ShowInSearchUI. La segunda instancia debe usar la autenticación de paso a través y contener la propiedad ShowInSearchUI. Las páginas de perfil usan la primera instancia de LobSystemInstance y el rastreador usa la segunda instancia.
Nota
[!NOTA] Esto requiere que se establezca la propiedad ShowInSearchUI en el nivel de LobSystemInstance en lugar de en el nivel de LobSystem.