Indexación múltiple y unificada con Constellio (y conexión con Alfresco por CMIS)

De entre los muchos sistemas de indexación que existen para las empresas está Constellio, un producto realizado por la gente de Doculibre y basado en Apache Solr. Constellio es Open Source y se puede contratar soporte con el fabricante dependiendo de las necesidades del cliente. Es una herramienta multiplataforma, instalación bastante sencilla con un asistente (java -jar constellio_install_1.3.jar).

Lo que me ha gustado de Constellio, y por eso he decidido contarlo en este post, es lo sencillo que resulta unificar/federar las búsquedas corporativas en un solo sistema, en una sola web.
  • Por ejemplo, imagina que tenemos uno o varios servidores Alfresco, un portal corporativo, un servidor de ficheros en Windows, un LDAP corporativo y una BBDD de clientes, todos esos sistemas tienen información que deben tener acceso rápido y sencillo los usuarios de nuestra organización (como si buscaran en Google). Con este producto podemos tenerlo todo unificado en un solo formulario de búsqueda, ahora bien, debe acceder a todos esos recursos y poder indexarlos en sus propios índices (recuerda que al fin y al cabo es un Solr), tiene una interfaz web de administrador bastante sencilla y auto-explicativa.
  • A cada uno de los contenedores de datos que queremos indexar (Alfresco u otros ECM, BBDD, LDAP, Servidor de Ficheros, etc.) Constellio los llama colecciones y podemos añadir tantos como necesitemos, viendo en el resultado de la búsqueda los resultados de todas las colecciones y pudiendo identificar visualmente de qué colección es cada resultado.
  • Configurar Constellio es muy fácil y en esta web tienes vídeos de como hacer casi cualquier cosa, en 10 minutos está configurado.
  • Os voy a explicar como crear una colección que indexe el contenido de Alfresco de forma externa en Constellio (recuerda que también se sigue indexando en Alfresco).
  • Una vez instalado Constellio, vamos al panel de administración accediendo como usuario administrador (tras hacer login como usuario admin) en la URL por defecto: http://localhost:8080/constellio
  • Ahora vamos a la pestaña “Collections management” -> “Add collection” -> ponemos un nombre por ejemplo “Alfresco Intranet” y el título que queramos. -> “Save”.
  • Pinchamos en la nueva colección llamada “Alfresco Intranet” y vamos a la sección “Connectors” -> “Add”.
  • Aquí os pongo una captura de como se configura Constellio para que indexe un repositorio Alfresco (o varios Alfrescos también se podrían configurar), como veis se hace mediante CMIS por lo que nos aporta mayor interoperabilidad con Alfresco o con cualquier otro repositorio CMIS ready.

    Configuración Constellio - Alfresco
    Pincha para ver la imagen completa
  • Tras guardar la configuración podemos ir a la sección “Indexing” del menú de la colección y veremos en tiempo real el estado de la reindexación de la nueva conexión que hemos creado.
  • Es tan fácil que casi no hay que explicar nada, sólo decir que el valor del parámetro “REPOSITORY” es el identificador único del repositorio CMIS y que podréis ver en vuestro servidor en la siguiente URL http://localhost:8080/alfresco/service/cmis/index.html -> “CMIS Repository Information” -> “Repository Id”.
  • La interfaz de usuario sería algo como esto:

    resultado de búsqueda
    Pincha para ver la imagen completa
  • En la captura anterior se ve el resultado de una búsqueda realizada sobre dos colecciones una es este blog y otra es un servidor Alfresco.
Esto es sólo un pequeño resumen de como conectarlo con Alfresco pero verás que tiene conectores muy útiles (HTTP, CMIS, BBDD, Servidor de Ficheros, LDAP, IMAP, POP, SOLR, XML y otros conectores específicos como Google Search Appliance u otros ECM propietarios). También se puede configurar a nivel de seguridad para filtrar resultados de búsquedas, integrar con sistemas de SSO externos, estadísticas, sinónimos, búsqueda avanzada, themes, facetas y otras muchas funcionalidades más.
  • Conclusión: si no unificas tus búsquedas es porque no quieres 😉