Introduccion
Los datos importantes de una empresa no solo se almacenan en servidores de archivos y almacenamiento en la nube, sino tambien en aplicaciones SaaS y bases de datos. La informacion de clientes en Salesforce, los datos maestros de productos en bases de datos internas, los datos de listas gestionados en archivos CSV: estos datos normalmente solo son buscables dentro de sus respectivos sistemas.
Este articulo cubre escenarios para importar datos de SaaS y bases de datos al indice de Fess, permitiendo la busqueda transversal junto con otros documentos.
Audiencia objetivo
Quienes desean incluir informacion de SaaS y bases de datos en los resultados de busqueda
Quienes desean aprender a utilizar los plugins de data store
Quienes desean construir una plataforma de busqueda que abarque multiples fuentes de datos
Escenario
Una organizacion de ventas tiene datos distribuidos en los siguientes sistemas.
El objetivo es permitir la busqueda transversal de todos estos datos con Fess, de modo que la informacion necesaria para las actividades de ventas pueda encontrarse desde un unico campo de busqueda.
Integracion de datos de Salesforce
Para hacer los datos de Salesforce buscables en Fess, utilice el plugin de data store de Salesforce.
Instalacion del plugin
Navegue a [Sistema] > [Plugins] en el panel de administracion
Instale
fess-ds-salesforce
Configuracion de la conexion
La integracion con Salesforce requiere configurar una Connected App.
Preparacion en el lado de Salesforce
Cree una Connected App en la configuracion de Salesforce
Habilite la configuracion de OAuth
Obtenga la clave y el secreto del consumidor
Configuracion en el lado de Fess
Navegue a [Crawler] > [Data Store] > [Crear nuevo]
Nombre del handler: Seleccione SalesforceDataStore
Configure los parametros y scripts
Etiqueta: Establezca
salesforce
Ejemplo de configuracion de parametros
base_url=https://login.salesforce.com
auth_type=oauth_password
username=user@example.com
password=your-password
security_token=your-security-token
client_id=your-consumer-key
client_secret=your-consumer-secret
Ejemplo de configuracion de script
url=url
title=title
content=content
last_modified=last_modified
Para auth_type, especifique oauth_password (autenticacion por nombre de usuario/contrasena) o oauth_token (autenticacion por token JWT Bearer). Al usar autenticacion JWT, establezca la clave privada RSA en private_key.
Seleccion de datos objetivo
Salesforce contiene muchos objetos, pero no todos necesitan ser buscables. Concentrese en los objetos que el equipo de ventas busca con frecuencia.
Integracion con bases de datos
Para hacer los datos de bases de datos internas buscables, utilice el plugin de data store de base de datos.
Instalacion del plugin
Instale el plugin fess-ds-db. Este plugin puede conectarse a diversas bases de datos (MySQL, PostgreSQL, Oracle, SQL Server, etc.) a traves de JDBC.
Configuracion
Navegue a [Crawler] > [Data Store] > [Crear nuevo]
Nombre del handler: Seleccione DatabaseDataStore
Configure los parametros y scripts
Etiqueta: Establezca
database
Ejemplo de configuracion de parametros
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://db-server:3306/mydb?useSSL=true
username=fess_reader
password=your-password
sql=SELECT product_id, product_name, description, price, CONCAT('https://internal-app/products/', product_id) AS url FROM products WHERE status = 'active'
Ejemplo de configuracion de script
url=url
title=product_name
content=description
Los resultados de la consulta SQL especificada en sql son rastreados. En los scripts, utilice los nombres de columna SQL (o etiquetas de columna) para mapearlos a los campos del indice de Fess.
Diseno de consultas SQL
Puntos clave al disenar la consulta SQL para el parametro sql:
Incluya una columna
urlque sirva como destino del enlace en los resultados de busqueda (p. ej.,CONCAT('https://.../', id) AS url)Incluya columnas que sirvan como texto buscable del cuerpo
Utilice una clausula
WHEREpara excluir datos innecesarios (p. ej.,status = 'active')
En los scripts, utilice los nombres de columna SQL directamente para mapearlos a los campos del indice de Fess.
Integracion de archivos CSV
Los datos de archivos CSV tambien pueden hacerse buscables.
Configuracion
Utilice el plugin fess-ds-csv o la funcionalidad del data store CSV.
Navegue a [Crawler] > [Data Store] > [Crear nuevo]
Nombre del handler: Seleccione CsvDataStore
Configure los parametros y scripts
Etiqueta: Establezca
csv-data
Ejemplo de configuracion de parametros
directories=/opt/fess/csv-data
file_encoding=UTF-8
has_header_line=true
separator_character=,
Ejemplo de configuracion de script (use nombres de columna cuando haya una linea de encabezado)
url="https://internal-app/contacts/" + id
title=company_name
content=company_name + " " + contact_name + " " + email
Cuando has_header_line=true, los nombres de columna de la linea de encabezado pueden usarse en los scripts. Cuando no hay linea de encabezado, las columnas se referencian por numero, como cell1, cell2, cell3. Los scripts pueden contener expresiones Groovy, incluyendo concatenacion de cadenas.
Si los archivos CSV se actualizan regularmente, fije la ubicacion de los archivos y configure un programa de rastreo para que los datos mas recientes se reflejen automaticamente en el indice.
Busqueda transversal
Una vez completadas todas las configuraciones de fuentes de datos, puede experimentar la busqueda transversal.
Ejemplo de busqueda
Al buscar «ABC Corporation», se obtienen resultados como:
Informacion de cuenta de Salesforce (Account)
Propuestas del servidor de archivos (PDF)
Historial de compras de productos de la base de datos
Lista de asistentes a ferias comerciales de CSV
Los usuarios pueden encontrar la informacion que necesitan sin tener que saber donde esta almacenada.
Filtrado por etiqueta
Cuando hay muchos resultados de busqueda, utilice etiquetas para filtrarlos.
salesforce: Solo datos de Salesforcedatabase: Solo datos de la base de datoscsv-data: Solo datos CSVshared-files: Solo documentos del servidor de archivos
Consideraciones operativas
Frescura de los datos
Los datos de SaaS y bases de datos pueden actualizarse con frecuencia. Configure la frecuencia de rastreo adecuadamente para mantener la frescura de los resultados de busqueda.
Seguridad de la conexion a la base de datos
Al conectarse directamente a una base de datos, preste especial atencion a la seguridad.
Utilice un usuario de base de datos de solo lectura
Restrinja las conexiones a la direccion IP del servidor Fess
No otorgue permisos de acceso a tablas innecesarias
Tenga cuidado con la gestion de contrasenas
Resumen
Este articulo cubrio escenarios para hacer los datos de Salesforce, bases de datos y archivos CSV buscables con Fess.
Integracion de datos CRM mediante el plugin de data store de Salesforce
Integracion de BD interna mediante el plugin de data store de base de datos
Integracion de datos de listas mediante el data store CSV
Mapeo de campos y diseno de consultas SQL
Aprovechamiento de etiquetas en la busqueda transversal
Al eliminar los silos de datos, se puede lograr un entorno donde todas las fuentes de informacion son buscables desde una unica plataforma. Con esto concluye la seccion de Soluciones Practicas. A partir de la proxima parte, cubriremos la seccion de Arquitectura y Escalabilidad, comenzando con el diseno multitenant.