Video del webinar “Alfresco y Solr”

SOLR es el nuevo motor de indexación que incorpora Alfresco en su versión 4.0, no obstante, se puede seguir usando Lucene. En este webinar de una hora de duración, junto a Baratz (Partner Gold de Alfresco), vamos a aprender qué es SOLR, cómo funciona y cómo está soportado, como configurarlo y migrar de Lucene a Solr, qué efectos tiene en el repositorio y que mejoras nos aporta.

34 thoughts to “Video del webinar “Alfresco y Solr””

  1. Hola Tony, mucho gusto en saludarle… recientemente estoy queriendo cambiarme a la version 4 de alfresco, despues de estar con la 3.4 sin embargo esta nueva version trae por defecto postgresql como base de datos, el problema se me presenta al migrar de mysql a posgresql pues al querer restaurar la DB obtengo muchos errores dada la incompatibilidad entre las sintaxis de ambas base de datos.

    Será que ustd conoce alguna manera de lograr hacer este procedimiento sin mayores inconvenientes. Gracias, le agradezco mucho su ayuda…

    Atte, David Vilchez

  2. Hola David, puedes seguir usando Mysql en la versión 4. Solo tienes que poner el driver y usar la misma cadena de conexión que usabas en la 3.4.
    Saludos.

  3. Pero tengo q instalar manualmente mysql pues por defecto se instala postgresql o basta con hacer ese cambio? En cuanto rendimiento es mejor postgresql que mysql para q se haya hecho ese cambio en la base de datos?
    Le saludo desde Honduras

  4. Si ya tienes mysql instalado no deberás instalarlo, sólo poner el driver de mysql en la nueva instalación (o la migrada) y la cadena de conexión que usas para la 3.4. Si no tienes mysql instalado si deberías hacer una instalación de la base de datos, crear una base de datos para alfresco y darle los privilegios a un usuario para que se conecte, que será el usuario de alfresco. ¿Rendimiento? Depende de que vayas a hacer, pero haciendo un buen tuning de MySQL se puede sacar muy buen rendimiento. Que en el bundle se haya cambiado mysql por postgres no significa que no se siga soportando mysql. Saludos!

  5. Hola Toni, como puedo checar la cadena de conexión de mi Alfresco 3.4 quiero migrar a version 4 gracias saludos

  6. La cadena sería algo como esto:

    db.url=jdbc:postgresql://localhost:5432/${db.name}

    y hay que cambiarla por la de mysql

  7. Qué pasa Toni!?
    Solo te quiería consultar. He leído en la wiki de Alfresco que Apache Solr se debe de instalar en Tomcat, y así viene preparado. Yo lo he probado con Websphere 7.0.0.11 y funciona todo menos un tema de presentación. En el supported platforms de la 4.x no veo Apache Solr.
    ¿Habrá soporte para WAS7.0.0.11?

    Por otro lado decir que me gustan mucho las pruebas que vamos haciendo pensando en la posible migración, aunque tenemos todavía dudas, pero creo que Alfresco 4 va a ser un gran producto!

  8. Gracias Toni.

    He actualizado mi entorno de pruebas de Alfresco4 con la versión 4.0, había algunos detalles de la beta que no terminaban de funcionar, tal y como comentaste en el webminar.
    Sin embargo en el stack de un cliente (webpshere 7.0.0.11 + rhel 5.7 + oracle 10gR2) algo que si funcionaba correctamente con la beta, no lo hace con la versión 4.0 definitiva.
    Es un detalle poco importante, cuando pinchas sobre “más” en el Share, la lista de opciones no se muestra correctamente, aparecen los iconos repetidos muchas veces y pisando las letras.

  9. Mikel, abrid un ticket con ese problema adjuntando capturas de pantalla, seguro que es alguna librería.

    Gracias por avisar!

  10. Estimado Toni.

    Hace varios días que llevo intentando realizar una reindexacion en Alfresco 4.0 b.

    en todos los foros que he revisado se mencionan las mismas configuraciones que para los alfrescos anterios con motor Lucene, entiendo que aunque el alfresco 4.0 trabaja con Solr, esta misma funcion index.recovery.mode=FULL debería funcionar, pero cuando la corro y reinicio alfresco 4.0 no muestra ningun evento de reindexacion, por favor quisiera saber si existe otra manera de reindexar en la nueva version con este motor Solr.

    Muchas Gracias.

  11. Hola Toni, fijese que estoy con la tarea de integrar mysql en alfresco 4 pues desde las versiones anteriores hemos estado trabajando con esta DB y dada la incompatibilidad para poder restaurar el dump de mysql en postgresql optamos por continuar con mysql.

    Ya la base de datos esta instalada y la aplicacion inicia sin problemas mientras no trate de restaurar y reindexar la base de datos respaldada pues al iniciar alfresco luego de restaurar el dump de mysql en la nueva instalación y poner la reindexacion a FULL comienza mandarme miles de veces este mensaje:
    WARN [repo.dictionary.DictionaryDAO] [indexTrackerThread4] Type not found: {http://www.alfresco.org/model/website/1.0}article

    Le agradezco mucho su ayuda

  12. Hola David,

    Para seguir usando mysql en nuevas versiones solo debes instalar una nueva versión y antes de arrancar por primera vez debes apuntar la nueva configuración al actual alf_data, a la actual bbdd y copiar el driver de mysql en tomcat/lib hecho eso arrancas y se actualiza. El procedimiento es así resumido. Si tienes personalizaciones u otras configuraciones específicas deberás tenerlas en cuenta.

    Saludos.

  13. Gracias Toni, segun entiendo este procedimiento se hace teniendo una instalación previa de alfresco y no solo el backup del alf_data y la base de datos.

    Voy a probar de esa manera pues lo que yo he estado intentado es reemplazar la DB de postgresql por Mysql en la nueva instalación pero restaurando con un mysql_dump.

    No se si haciendo eso este error q te mencionaba ya no saldrá mas:
    WARN [repo.dictionary.DictionaryDAO] [indexTrackerThread4] Type not found: {http://www.alfresco.org/model/website/1.0}article
    espero q no, gracias

  14. Disculpa Toni, aplique el procedimiento que me propusiste pero me da el mismo error al iniciarlo:
    WARN [repo.dictionary.DictionaryDAO] [indexTrackerThread4] Type not found: {http://www.alfresco.org/model/website/1.0}article

    Que puedo hacer? 🙁

  15. Eso es un warning por lo que no te debe afectar a la disponibilidad del sistema. Ahora bien, depende de como hayas ejecutado el procedimiento y el estado del sistema anterior.

  16. Hola Toni,

    En la configuración de Solr en HA me surgen varias dudas:

    -> Según entiendo, tenemos varias instalaciones de SOLR sobre las cuales los nodos de Alfresco pueden realizar búsquedas, pero ¿como se le indica a Alfresco la ubicación de todos ellos (asumiendo que no hay balanceador)? ¿Cual es el algoritmo para realizar la busqueda en uno u otro?.

    -> En el caso de la indexación, comentas que el proceso de indexación se ha eliminado de las transacciones de alfresco, mejorando el rendimiento y es ahora los nodos de solr los que realizan asincronamente el proceso de indexación. En este sentido:

    * ¿Como se lleva a cabo este punto? ¿se mantiene en los nodos de Alfresco un registro de elementos a indexar que solicitan los nodos de Solr a partir de su posición actual (es decir, estoy en la posicion 800 y tengo que indexar hasta la 834)?. Algo parecido a los transaction sequence number en bases de datos.

    -> ¿Este desarrollo de petición asíncrona desde los nodos de Solr, es una funcionalidad nativa de solr o es un desarrollo/extension realizado por Alfresco?. Es decir, que componentes son nativos ( y por tanto podría bajarmelos de la web de Apache/solr y no usar la distribución que da alfresco y cuales son personalizaciones/desarrollos?.

    Muchas gracias y felicitaciones por el blog,
    Jose Antonio

  17. Hola Jose Antonio,

    Te contesto a tus preguntas más abajo, aunque antes te aclaro que no está soportado HA en SOLR con Alfresco actualmente, y digo no está soportado HA en el propio SOLR, aunque se puede configurar para que no sea como punto único de fallo teniendo 2 SOLR para la instancia de Alfresco.

    1- No hay algoritmo, en cada alfresco se indica qué Solr debe consultar, para balancear entre varios Solr debes poner un balanceador entre Alfresco y los Solr, para configurar ahí ese algoritmo.

    2- Efectivamente, digamos que hay una cola de contenidos a indexar y cada 15 segundos Solr pregunta a Alfresco, le pide qué contenidos tiene pendientes de indexación desde la última consulta al repositorio y se pone con ello. De hecho, si te fijas, cuando añades una categoría o una etiqueta en el panel de administración verás que tarda 15 segundos en aparecer lo que hacemos. Ese tiempo se puede cambiar en la configuración de cada core de Solr.

    3- El funcionamiento de Solr con Alfresco (el Solr que trae Alfresco) es específico, no es un Solr por defecto, ni está soportado usar otro Solr (salvo que sea una capa de red o aplicativo diferente), por lo tanto el Solr de Alfresco funciona y está configurado en base a lo que el producto necesita. La personalización que tenemos la puedes ver en la configuración de los cores de Solr que viene por defecto en la versión 4.

    Gracias a ti por participar.

    Saludos.

  18. Hola Toni,

    Muchas gracias por las aclaraciones, si efectivamente con HA me refería en realidad a no tener un solo solr y por tanto un punto único de fallo.

    Respecto a la configuración específica que se ha realizado sobre el solr, ¿donde la puedo localizar?. No tengo claras las rutas a la configuración de los cores que te refieres.

    Por cierto, ¿está esta funcionalidad disponible en la versión community o tiene que ser en le EE?. Es que para bajarme la EE me pide un correo “empresarial” y eso es una jodienda para los que solo estudiamos y no trabajamos…

    Salu2,
    Jose A.

  19. La configuración de Solr en una instalación por defecto la puedes encontrar en alf_data/solr/ y luego dentro de ese directorio para el core Alfresco puedes encontrar la configuración en workspace-SpacesStore/conf y para el core Archive (papelera) en archive-SpacesStore/conf/

    El servicio de indexación con Solr está disponible tanto en Community como en Enterprise.

    Saludos.

  20. Hola.

    Te escribo por la razon siguiente, soy nuevo en el uso de alfresco(uso alfresco 4.0.d x64 sobre win2008r2), asi como en todo lo que se alfresco trato de reforsarlo con lectura practicas y en t web me esta siendo de mucha ayuda.

    soy de lima-peru, he estado buscando grupos que trabajen con alfresco aqui, pero no eh encontrado.

    la razon es que en las pruebas que realizo, tengo un problema:

    1.- cuando genero una etiqueta o tag, al crear un evento u otra activadad que permita poner o usar tags no me deja guardar en dicho evento, segun lo que lei, el problem a radica en el vencimiento de la licencia SORL y segun el foro se soluciona reemplazado la licencia sorl por una nueva, que se crea con el paquete sorl 4.0.e, bien reaizado este paso. sigo teniedo el problema, algo que di en cuenta windows identifican la licencia como no valida siendo esta licencia con un vencimiento en el 2020.

    2.- el dashled no me permite visualizar las imagenes previas, de la biblioteca del sitio.

    A todo esto, si me podrias ayudar, con informacion que que pueda orientar a poder encontrar solucion a este problemas.

    muy agradecido.

  21. Hola,

    En tu país hay varias empresas y clientes que trabajan con Alfresco, consulta en la web de Alfresco (partners o socios).

    Lo que te ocurre es con el certificado de seguridad de Solr, actualiza y listo. O genera uno siguiendo las instrucciones que hay en el directorio solr de tu instalación.

    El segundo error parece ser a que no esta bien la instalación de imagemagik y demas software de terceros, revisalo.

    Saludos.

  22. Hola,

    La configuración por defecto de solr, ¿es la adecuada para el idioma español?. He comprobado que el comportamiento de las búsquedas no es el esperado en algunos casos. Al ver el fichero squema.xml parece que no se realiza stemming, pero aun así, cuando por ejemplo busco las palabras coto y cota, ambas obtienen los mismos resultados.

    Saludos.

  23. Hola Eduardo, en principio no viene personalizado para ningún idioma, a diferencia de Lucene que por defecto está configurado para inglés.

  24. Hola Toni, la aplicación SOLR que usa alfresco no es la estándar sino una versión customizada para funcionar con Alfresco. Por ahora es sólo posible instalarla en Tomcat, sabes si se está trabajando para que se pueda instalar en cualquier servidor de aplicaciones? Por ejemplo en JBOSS? Sería realmente útil sobretodo para entornos en cluster.
    Un Saludo,

  25. Hola Aina,
    Aunque lo tendría que confirmar por si hay algún cambio en el último mes, no está pensado hacerlo para otros servidores de aplicaciones pero si que se pueda configurar en cluster con las opciones que da SOLR para ello. Ya iré hablando de eso cuando tenga más detalles.

    Saludos.

  26. Toni,

    no se si a ti o alguien mas le a pasado el siguiente problema:

    cuando se trabaja con cifs, algunos archivos indican que estan siendo usuado por “usuario desconocido” o por el mismo usuario que trata de editarlo.

    Buscando en google encontre que este error es recurrente en la version 4.2

    mi caso fue pasar de la version 2.9b directamente a la 4.2, pero ante los problemas (no deja editar archivos mediante cifs) baje a la version 4.0d.

    y aunque los problemas bajaron considerablemente, aun se me presentan estos casos

    de ante mano gracias

  27. Disculpa Toni,

    He actualizado de la 3.4d a la 4.2c con bastante éxito lo único es que me salta esta excepción cuando utilizo tanto solr como si re indexo en lucene:

    WARN [org.alfresco.repo.dictionary.DictionaryDAO] Type not found: {http://www.alfresco.org/model/website/1.0}article
    ERROR [org.springframework.extensions.webscripts.AbstractRuntime] Exception from executeScript – redirecting to status template error: 05260001 Wrapped Exception (with status template): 05260004 Nodes with no type are ignored by SOLR
    org.springframework.extensions.webscripts.WebScriptException: 05260001 Wrapped Exception (with status template): 05260004 Nodes with no type are ignored by SOLR
    at org.springframework.extensions.webscripts.AbstractWebScript.createStatusException(AbstractWebScript.java:1067)
    at org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:171)
    at org.alfresco.repo.web.scripts.RepositoryContainer$3.execute(RepositoryContainer.java:426)
    at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:433)
    at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecute(RepositoryContainer.java:495)
    at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecuteAs(RepositoryContainer.java:533)
    at org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:276)
    at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:377)
    at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:209)
    at org.springframework.extensions.webscripts.servlet.WebScriptServlet.service(WebScriptServlet.java:118)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:61)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:581)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
    Caused by: org.alfresco.error.AlfrescoRuntimeException: 05260004 Nodes with no type are ignored by SOLR
    at org.alfresco.repo.solr.SOLRTrackingComponentImpl.getNodesMetadata(SOLRTrackingComponentImpl.java:625)
    at sun.reflect.GeneratedMethodAccessor428.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.alfresco.repo.management.subsystems.SubsystemProxyFactory$1.invoke(SubsystemProxyFactory.java:72)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
    at $Proxy146.getNodesMetadata(Unknown Source)
    at org.alfresco.repo.web.scripts.solr.NodesMetaDataGet.executeImpl(NodesMetaDataGet.java:181)
    at org.springframework.extensions.webscripts.DeclarativeWebScript.executeImpl(DeclarativeWebScript.java:235)
    at org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:64)
    … 28 more

    Creo que todo viene por el Type not found: {http://www.alfresco.org/model/website/1.0}article, pero no entiendo porque, tengo todos los modelos que desarrolle cargados, y por lo que veo parece un DAO propio de alfresco.

  28. Hola Tocayo, 😉

    Actualmente tengo el Alfresco 4.2c Instalado en una particion diferente a la tipica de Windows por lo cual el unico backup que tengo es la imagen completa del disco.

    Leyendo incluso la documentacion oficial no he dado con el restore de la BBDD. Es decir exporto el archivo .backup pero al restaurarlo en un equipo con una instalacion limpia del Alfresco (los mismos puertos, rutas de BBDD del Tomcat) me da error de salida 1.

    Alfresco la BBDD. Mi procedimiento es:

    0. Detengo por el alfresco manager tool, el tomcat
    1. Voy a “F:\Alfresco\postgresql\bin” y abro pgAdmin3
    2. Luego me conecto a la BBDD y despues de ahi sobre la BBDD que dice alfresco boton derecho con el raton y selecciono “resguardo” el cual me crea un archivo .backup

    ¿De la manera que te digo esta bien? Porque el problema es que en el equipo nuevo cuando voy a restaurar en el equipo nuevo no me importa la BBDD. En los mensajes de salida deberia dar “salida 0” y me da “salida 1”, no se porque.

    ¿No hay ningun problema porque los datos sean de 4.2c (antigua) y la nueva sea 5.0?

    Muchas gracias por tu tiempo.

    Saludos,

    Antonio

  29. Hola Antonio!

    En este enlace tienes (debajo del video) el White Paper sobre backup y recovery de Alfresco, seguro que resuelve todas esas dudas que tienes:
    https://summit.alfresco.com/boston/sessions/alfresco-backup-and-recovery-tool-real-world-backup-solution

    De todas formas, si lo que quieres es hacer una actualización deberás seguir el procedimiento de actualización, no es lo mismo un backup-recovery que una actualización. http://docs.alfresco.com/community/concepts/ch-upgrade.html

    Ya me contarás si eso te sirve.

    Saludos.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.