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.
1. El webinar comenzará en unos minutos.
Las líneas de voz de los asistentes estarán desactivadas.
Use el área de “Chat” o “Q&A” para hacer las preguntas
que responderemos al finalizar la sesión.
1
2. Alfresco y SOLR
Toni de la Fuente
Senior Solutions Engineer
twitter: @ToniBlyx blog: blyx.com
Federico Gramage y Xose Manuel Paz
Federico.gramage@barat.es
Baratz
3. Contenidos
• Introducción - Nueva versión de Alfresco
• Despliegue de Alfresco con Solr
• Actualización de Alfresco 3.4 a Alfresco 4
o Instalación nueva Alfresco 4
o Pasos actualización Alfresco 3.4 a Alfresco 4.0
o Configuración Alfresco con SOLR
o Consola administración SOLR
o Demo
• Conclusiones y preguntas
5. Alfresco 4.0 – Repositorio más robusto
• Mejorar la fiabilidad, escalabilidad y
servicio.
• Reducir la carga que implica el uso de
Lucene en indexación transaccional
• En 4.0 nuevo servicio de búsqueda
usando Apache Solr
7. Ventajas y mejoras con Solr
• No se necesita indexación durante la transacción
• No se necesita duplicar los índices en cada servidor
• Las búsquedas pueden ser escaladas en una capa separada
• Se pueden usar las herramientas de administración de Solr
• Localización específica y mejorada para soporte multi-idoma.
o P.ej. Ahora se registra el "locale" de un nodo, por lo que se pueden localizar documentos por idiomas (antes
se perdía el locale con FTS). Antes los índices en español o francés perdían los "derivados", ahora se pueden
encontrar y cruzar búsquedas entre idiomas de forma consistente (dataTypeAnalyzers)
• Ordenación entre idiomas para propiedades d:text y d:mltext
o La "tokenizacción" de la configuración de localización utiliza ahora la WordDelimiterFilterFactory con todas
las opciones habilitadas (ALF-10071)
o en: peach péché pêche sin
o fr: peach pêche péché sin
• Mejor acierto en los resultados
o P.ej. BigWoof-123-A47.txt à .txt, Big, 123A, 123a47txt, 47, A47, BigWoof123A47txt
• Rendimiento
o Consultas por PATH mejoradas
o Permisos de lectura evaludados durante la consulta
• Campos basados en faceting en el SearchService
o Obtiene grupos de resultados – sólo usado para las categorías
8. Búsquedas con Solr en Alfresco
• Los servicios basados en Lucene siguen
disponibles
• Solr es asíncrono
o Por defecto 15 segundos, puede ser configurado en un
cron en Solr, puede ser diferente para cada store/core
o Cuando hay actualizaciones se ejecuta
• Solicita todas las nuevas actualizaciones que necesita
conocer durante un minuto
• Se soportan los mismos lenguajes de consulta
o lucene, fts-alfresco, cmis-strict, cmis-alfresco, xpath
(siempre en BD), noderef (usa BD)
• Nota: todos las consultas CMIS ahora usan
internamente opencmis non-strict
9. Canned Queries
• Share, Explorer (excepto WCM), CIFS, FTP,
WebDAV, etc., han sido reconfigurados para
usar canned queries (Database) donde los
resultados deben ser transaccionales y
consistentes
• La búsqueda (p.ej. Lucene o Solr) se usa
para fíltros, etiquetas, categorias, búsqueda
avanzada y algunos dashlets
• Soporta paginación
10. Uso de Full Text Search en Share
• Búsqueda avanzada
• Filtros
• Etiquetas
• Categorías
o Top categories usan faceting
• Dashlets
o Modificados recientemente
• Personas, Grupos, Sitios usarán consultas a la
BD directamente excepto cuando:
o Empiencen por *xyz
o Contengan un wildcard ??
11. Nuevos subsistemas
• Nuevos subsistemas lucene, solr,
searchmanager y noindex
o Con searchmanager se puede seleccionar que
subsistema de búsqueda se va a usar
• Accesible vía
JMX y
Admin Console
(excepto noindex)
12. Comunicación entre Repositorio y SOLR
• El repositorio lanza las consultas a Solr
• Solr solicita al repositorio actualizaciones del modelo y
contenido que necesita indexar
• La información entre el Repositorio y Solr está
encriptada
o Previene intercepción de datos de terceros
o Asegura la privacidad de las transferencias
o Se usan claves RSA (pública/privada) para la encriptación desde el keystore por defecto
• Autenticación en la conexión
o Protege la conexión entre Repo/Solr
o Garantiza que solo los repositorios e instancias acreditadas pueden hablar unos con otros
o Para autenticar se usan certificados X.509 (no se usa usuario/contraseña)
• Nota: El cliente debe reemplazar las claves y certificados con los propios
13. Alfresco & Solr funcionamiento a alto nivel
Petición de
búsquedas
Resultados de búsquedas
Repositorio
Async: Solr
Index Polling
Content Database
Store(s) Storage Actualizac
iones
Modelos Solr Cores:
ACLS Solr - Workspace
Cores - Archive
Propiedades & Contenidos
Nota: Todas las comunicaciones son via SSL
14. Autenticación y cifrado Repositorio-Solr
• La comunicación es sobre SSL con autenticación
mutua
o Tanto repositorio como Solr tienen sus propios par de claves
públicas/privadas
• Keystores del Repositorio
o ‘ssl keystore’ – contiene un par de claves RSA pública/privada para
la encriptación
o ‘ssl truststore’ – contiene certificados SSL de confianza para la
autenticación
o El directorio por defecto de los keystores es:
• alfrescoWEB-INFclassesalfrescokeystore
• Keystores SSL de Solr
o Ubicación de los keystores cuando se usa el instalador:
o <SOLR>archive-SpacesStoreconf
o <SOLR>workspace-SpacesStoreconf
15. Comprobación de estado
• Es necesario un certificado para autenticar y acceder a Solar
mediante un navegador (brower.p12 contraseña “alfresco”)
• Informe general
o http://localhost:8080/solr/admin/cores?action=REPORT&wt=xml
• Informe basado en transacción (TX)
o http://localhost:8080/solr/admin/cores?
action=TXREPORT&core=alfresco&wt=xml&txid=6
• Informe basado en nodo
o http://localhost:8080/solr/admin/cores?
action=NODEREPORT&wt=xml&dbid=10
• Añadir &core=alfresco o &core=archive como argumento
para ver el estado de cada core
16. Control de indexación
• No idexes si no tienes que hacerlo, p.ej.:
o No se requiere FTS para el contenido
• Nuevo aspecto cm:indexControl (Control de índice)
o cm:isIndexed (Boolean)
• Activa/desactiva todos los índices (propiedades y contenido)
o cm:isContentIndexed (Boolean)
• Activa/desactiva la indexación del contenido
o Las dos están activadas por defecto. Toda indexación activa
• Se puede configurar por cada contenido para activar o desactivar
• Sirve tanto para Solr como para Lucene
• Usa el modelo, políticas o reglas para adaptarlo a tus
necesidades
• También se puede controlar por JMX a nivel global de todo el
repositorio
18. Arquitecturas y opciones de despliegue
• Solr es un war separado
• En la misma instancia de Tomcat
• Instancias separadas
o 1 Servidor Repositorio : 1 Servidor Solr
• En Cluster p.ej.:
o Cluster de repositorio de 2 Nodos: 1 Servidor Solr
o Cluster de repositorio de 2 Nodos: 2 Servidores Solr
o Cluster de repositorio de 4 Nodos: 2 Servidor Solr
o ...y más
• NOTA: Clustering o sharding de Solr no está
soportado por defecto en 4.0
19. Instalación de Alfresco 4.0
• Se recomienda usar el bundle con Alfresco y Solr, está
pre-configurado.
o Descarga y ejecución del binario
alfresco-enterprise-4.0.0b-installer-win-x64.exe
• Si elegimos opción “Facil” seguimos como siempre, y se instalará SOLR en
la instancia de Alfresco
• Si elegimos opción manual, sin asistentes
recomendamos seguir la guía :
http://docs.alfresco.com/4.0/index.jsp?topic=%2Fcom.alfresco.enterprise.doc
%2Fconcepts%2Fsolr-webapp-config.html
• Actualización de Alfresco 3.4 a Alfresco 4
21. Actualización - Resumen
• Actualización
o Actulización normal => El servidor seguirá usando Lucene
o Instala y configura Solr (si instalas el bundle estará instalado)
o Activar la indexación con Solr
• Lucene se sigue usando para las búsquedas mientras Solr
genera sus índices
o Cambia a Solr para las búsquedas cuando esté listo
• Comprobando el timestamp de la última transacción,
mediante JMX, DB o Panel indexmanager y el de Solr.
• Nota: Puedes seguir usando Lucene si lo deseas
22. Actualización de Alfresco 3.4 a Alfresco 4
• La actualización consiste en una nueva instalación y
configuración de los binarios de Alfresco, y en remplazar
el repositorio por la copia antigua.
No se recomienda actualizar los binarios y ficheros de configuración.
• Antes de empezar con el proceso, debemos
asegurarnos de:
o Tener una copia de seguridad del entorno de producción, por ejemplo, del
directorio 'alf_data'
o Que el subsistema de Lucene este activo durante el proceso de actualización.
Una vez finalizado, podremos activar Solr.
o Si tenemos alguna personalización (por ejemplo, AMP) en la actual instalación
de Alfresco, re-compilar todo el código Java contra la nueva versión de Alfresco
y lanzar los test.
23. Actualización de Alfresco 3.4 a Alfresco 4
• Paso 1: Comprobar la compatibildiad de nuestra
plataforma:
http://www.alfresco.com/services/subscription/supported-platforms/
• Paso 2: Parar las instancias de Alfresco
• Paso 3: “Copia en frío” del repositorio.
o Para una copia bastaría copiar los ficheros de dir.root y reindexar (como la
reindexación es presada se copian también los índices)
o La copia de seguridad de repositorio incluye:
o Directorio al que apunta el parámetro de configuración: dir.root
o La base de datos
o Empaquetar la BBDD y el dir.root como un único objeto y guardar en un
directorio.
• Paso 4: Copia de configuraciones de <extension>
24. Actualización de Alfresco 3.4 a Alfresco 4
• Paso 5: Descarga y descompresión del .war de alfresco
o Mover el .war a la ubicación de tu AS
o Incluir los parámetros de configuración en “propierties”
o Mover el “properties” al <classpathRoot>.
o En caso de tener desplegadass anteriores versiones eliminar temporales.
• Paso 6: Validar la instalación de la nueva versión
• Paso 7: Restaurar la copia del repositorio
o Parar instancias
o Guardar el dir.root actual en otra ubicación
o Copiar el repositorio
o Restaurar la copia de la BBDD
o Arrancar
• Paso 8: Aplicar la configuraciones de <extension>
• Paso 9: Incluir las personalizaciones necesarias
• Paso 10: Arrancar Alfresco
25. Consola administración de Solr
• La consola de administración de Solr es una
herramienta que permite comprobar el servidor de Solr,
su configuración, el estado de los índices, los campos
que utiliza Alfresco, el peso del contenido indexado en
cada campo, etc.
• Antes de acceder a la consola de administración de
Solr, debemos instalar un certificado en nuestro
navegador.
• El certificado que debemos instalar se encuentra en :
$ALF_HOME/alf_data/keystore/browser.p12
26. Consola administración de Solr
Proceso de instalación del certificado en Google Chrome:
• Primero debemos acceder al menu de Herramientas de nuestro
navegador. Una vez en el accederemos a la pestaña Avanzados:
• Accederemos a Administrar certificados...
• en la pestaña Personal, pulsaremos el botón Importar...
• Pulsamos en Examinar... y nos dirigimos al directorio indicado:
o $ALF_HOME/alf_data/keystore/
• Seleccionamos el fichero de certificado browser.p12
• Pulsamos Abrir
• Pulsamos en Siguiente >
o Incorporamos una contraseña para la clave privada .
27. Consola administración de Solr
Ahora ya prodremos acceder por url al administrador del Solr de
nuestro Alfresco:
28. Consola administración de Solr
Podemos acceder al esquema del indice, y comprobar que tipos de
campos se estan utilizando:
29. Consola administración de Solr
Por defecto, Alfresco ha creado su propio tipo de campo, y le ha
aplicado un tokenizador y filtros. Se puede comprobar como actuaría
a la hora de indexar y de buscar un texto:
30. Consola administración de Solr
Como se observa en la captura, a la hora de indexar, se
van a separar cada una de las palabras que componen
la frase, y aquellas que tuviesen signos de puntuación, se
indexarían tanto con el signo como sin él.
Esto se logra utilizando el tokenizador:
<tokenizer class="org.apache.solr.analysis.WhitespaceTokenizerFactory"/>
También se observa que a la hora de indexar, se pasarían
todas las palabras a minúsculas. Esto se logra con el filtro:
<filter class="org.apache.solr.analysis.LowerCaseFilterFactory"/>
32. Tareas de la demo
• Novedades en el directorio de instalación de Alfresco
• Tareas administrativas y de configuración
• Configuración del subsistema Search con SOLR
• Opciones de configuración de SOLR y Lucene con
acceso por JMX
• Acceso mediante la aplicación de administración de
SOLR
• Administración de cores con el API REST
33. Preguntas frecuentes
• ¿Tengo que usar Solr?
o No, puedes seguir usando Lucene si quieres
• ¿Tengo que volver a programar mis consultas?
o No, seguimos soportando el mismo lenguaje de consultas que antes
• ¿Hay diferencias de rendimiento entre Solr y Lucene?
o Con Solr la búsqueda debe ser más rápida, y la indexación más lenta pero…
• Es escalable de forma independiente y configurable
• ¿Puedo usar otras características de Solr como sharding, clustering, term
hit-highlighting, faceted search?
o No, no lo hemos probado e implementado todavía, pero lo haremos en próximas versiones
• ¿Puedo usar Alfresco sin índices o con índices desactivados?
o Las aplicaciones cliente funcionaran normalmente sin índices, pero…
• Los filtros, la búsqueda avanzada, búsqueda por etiquetas y algunos dashlets de Share no
funcionarán.
o No está soportado para Multi-Tenant, Explorer WCM
o Para garantizar soporte, no se garantiza desactivarlo, usa noidex para test.
• ¿Con Solr sigue habiendo un máximo de resultados y timeouts en el
chequeo de permisos?
o No hay restricción por número de resultados, al contrario que ocurría en Lucene
o No se utilizan timeouts para chequeo de permisos