Pasar al contenido principal

Actualización de Solr9 en Acquia

Desde finales de agosto, Acquia está realizando una actualización gradual de Solr 8 a Solr 9, un proceso que culminará con la migración de los entornos de producción en la segunda quincena de septiembre. Esta actualización trae consigo mejoras significativas y cambios que requieren la atención de los equipos de desarrollo. 

Elegir el camino del self-service te brinda más control sobre el momento de la actualización y la posibilidad de verificar tu configuración personalizada antes de la fecha programada por Acquia. Este enfoque proactivo permite asegurar una transición sin sobresaltos y garantizar que la búsqueda de tu web funcione de manera estable en producción.

Este artículo detalla el proceso para realizar una actualización self-service de Solr 9 en entornos Acquia, centrándose en los aspectos clave de configuración en Drupal y la gestión de configsets personalizados.

¿Qué conlleva el cambio a Solr 9.8?

Solr 9 representa una evolución significativa, construida sobre Lucene 9, que aporta mejoras en la gestión de índices, la eficiencia en las consultas y una base más moderna y segura. Entre las innovaciones más destacadas se incluye la capacidad nativa para la búsqueda vectorial (KNN y embeddings), abriendo la puerta a funcionalidades de búsqueda semántica y basada en inteligencia artificial. 

Los aspectos clave a considerar para la configuración giran principalmente en torno a los cambios en el formato y la gestión de módulos. Solr 9 ha eliminado el soporte para stateFormat=1, requiriendo que las colecciones se migren a stateFormat=2 mediante la API MIGRATESTATEFORMAT, o creando nuevos índices desde cero, como propone Acquia en sus procesos de actualización.

Un punto crítico es el tratamiento de las directivas <lib/> en solrconfig.xml: a partir de Solr 9.8, estas directivas se han convertido en una característica "opt-in" y se ignorarán por defecto. Este cambio viene dado por motivos de seguridad y ahora se deben configurar las librerías en el propio servidor con el parametro SOLR_MODULES, directorios "lib" del core... Este cambio es algo a tener en cuenta a la hora de configurar el entorno local.

Finalmente, es importante destacar la eliminación de componentes obsoletos como el DIH (Data Import Handler) y ciertas cachés legacy, lo que implicará la revisión de los configsets para adaptar las configuraciones existentes a Solr 9.

Configuración

En Drupal, el módulo Search API Solr es fundamental para interactuar y configurar las colecciones/cores de Solr. Al actualizar a una nueva versión de Solr, como Solr 9, el proceso de configuración en Drupal se guía por los siguientes pasos:

Prerrequisito: Asegúrate de que el módulo Search API Solr en tu Drupal esté actualizado a una versión compatible con Solr 9 (>= 4.3) y que los ficheros de configuración que proporciona el módulo estén disponibles en tu carpeta de configuración.

  1. Actualiazar la version de Solr en el entorno.
  2. Actualizar la configuración en Drupal y generar el nuevo configset.
  3. Aplicar el configset en el core/colección de Solr.

En este artículo, vamos a centrarnos en que el apartado de configuración y generacion del configset.

Actualizar la configuración en Drupal y generar el nuevo configset

Justo después de actualizar la versión de Solr y de que se conecte correctamente al servidor, la pantalla de status de Search API tendrá una apariencia similar a esta:

Solr9 upgrade - Search API status before configuration update

Aquí vemos que "Configured Solr Version" es correcta si está configurada para autodetección. "Detected Solr Version" es la versión real del servidor, y "*:Schema" hace referencia al configset utilizado, en este caso, el que proporciona Solr por defecto. Si "Detected Solr Version" no es la correcta, limpia cachés para forzar la actualización. Actualiza la versión de Solr configurada en Search API si fuera necesario. 

Lo siguiente a comprobar es que en la pestaña de "Caches" todos los elementos sean los adecuados para la versión 9.

Solr9 upgrade - Search API caches page

En este punto ya puedes bajarte el configset en "+ Get config.zip" e importarlo en el core de Solr. En la pantalla de status verás actualizado el "*:Schema". No olvides exportar la nueva configuración de Drupal.

Solr9 upgrade - Search API status after configuration update

Si tienes ajustes en las configuraciones de los tipos de campo, es necesario revisarlos, ya que algunos procesadores de texto y cachés ya no están disponibles en Lucene 9.

Solr9 upgrade - lib definition warning message
El mensaje de advertencia sobre la definición de los <lib/> en la versión actual de Search API Solr (4.3.10) aparece debido a la versión de Solr detectada, no por la configuración en sí. La gestión de los módulos (<lib/>) es algo que debes tener en cuenta al configurar el servidor Solr, como ya comentamos en la sección Qué conlleva el cambio a Solr9.8.

Configuración en Acquia

Para la configuración de Solr en los entornos de Acquia, entra en acción Acquia Search. Este modulo es el encargado de gestionar y ajustar dinámicamente la configuración de Solr para que funcione de manera óptima en su plataforma. En esencia, Acquia Search detecta los cores disponibles para tu sitio web y entorno (Dev, Stage, Prod) y los asigna dinámicamente, asegurando que el módulo Search API en Drupal siempre apunte al core correcto sin necesidad de configurar manualmente el servidor Solr. Acquia Search respeta la mayoría de las configuraciones, excepto aquellas relativas a la conexión con el core de Solr, donde solo permite ajustar ciertos timeouts.

Es importante tener en cuenta que un configset generado desde un entorno local no es válido para un entorno de Acquia. Si deseas utilizar un configset personalizado, es necesario descargarlo desde uno de tus entornos de Acquia. Esto se debe a que Acquia realiza microajustes específicos e incluye el archivo solrcore.properties dentro del configset, que contiene configuraciones específicas. 

Actualmente Acquia ya actualizó la versión de Solr en los entornos no productivos, así que puedes descargarte los configsets de esos entornos. En el caso de que tuvieses un configset personalizado, en las actualizaciones hechas hasta ahora, Acquia modificó lo justo para poder subir la versión del core de Solr, por lo que puede ser un buen momento para poner el configset al día.

Para subir un configset a Acquia, ve al apartado de Search en cualquier entorno y luego en el tab de Configsets pulsa el botón "Add configset". Una vez subido el configset pasará por un proceso de validación. Si lo supera, aparecerá con el estado Activo

Solr9 upgrade - Acquia configset upload

Los configset subidos están disponibles para todos los entornso.

Proceso de actualización self-service de Acquia con un configset personalizado

Acquia ofrece la flexibilidad de actualizar tus índices de Solr a la versión 9 mediante un proceso self-service. Es importante tener en cuenta que este proceso, especialmente si se realiza en producción, causará una interrupción temporal de la funcionalidad de búsqueda. Por ello, se recomienda encarecidamente llevarlo a cabo durante una ventana de mantenimiento y "fuera de horario". Como se va a utilizar un configset personalizado, es recomendable probar los pasos en otro entorno antes de realizarlos en producción.

La guía que proporciona Acquia está basada en los configsets que proporciona por defecto, pero los pasos son perfectamente aplicables a un configset personalizado.

Prerrequisitos:

  • Acceso al panel de control de Acquia Cloud Platform.
  • Acceso a Drush en tu entorno de producción o a la administración de Drupal con permiso para lanzar una limpieza de caché e indexar contenidos.
  • Conocimiento de tu aplicación Drupal y del entorno.
  • Disponer del configset personalizado compatible con Solr 9.

Notas Importantes:

  • No saltes pasos ni cambies el orden. Cada paso depende del anterior.
  • Espera a que cada operación se complete antes de pasar al siguiente.
  • Considera realizar este proceso durante una ventana de mantenimiento programada para minimizar el impacto en los usuarios.

Paso 1: Acceder a Acquia search en la interfaz de Cloud Platform

  1. Inicia sesión en la interfaz de usuario de Acquia Cloud Platform.
  2. Navega a tu aplicación y selecciona el entorno de producción.
  3. Haz clic en "Search" en el menú lateral izquierdo.

 

Paso 2: Eliminar el índice existente

¡Advertencia!
La funcionalidad de búsqueda se interrumpirá en este punto hasta que se complete el Paso 6.

Solr9 upgrade - Acquia index delete
  1. En la sección "Search", localiza tu índice de búsqueda actual.
  2. Haz clic en el icono de los tres puntos del índice y selecciona "Delete Index".
  3. Confirma la eliminación cuando se solicite y espera a que el proceso finalice.

 

Paso 3: Crear nuevo índice Solr 9

Solr9 upgrade - Acquia index add
  1. Haz clic en "Add Search Index".
  2. Selecciona el nombre de la base de datos (normalmente, el nombre de tu aplicación).
  3. Para "Config Set", selecciona el configset subido previamente.
    1. Nota: Si aún no has subido tu configset, puedes subirlo en este paso.
  4. Haz clic en "Add".
  5. Espera a que se complete la creación del índice. Esto puede tardar varios minutos.

 

Paso 4: Limpiar cachés de Drupal

Solr9 upgrade - Drupal cache clear
  1. Haz login en el panel de administración de Drupal.
  2. Vete a Configuration > Search and metadata > Search API
  3. Verás que el servidor de Solr no está disponible.
  4. Lanza una limpieza de caché.
  5. Una vez finalizada verás que el nuevo core ya se detectó correctamente y aparece con el configset seleccionado.
Solr9 upgrade - Drupal solr9 core detected

 

Paso 5: Reconstruir la información de seguimiento de búsqueda

Solr9 upgrade - Drupal rebuild tracking information
  1. Selecciona el índice del servidor de Solr.
  2. Haz clic en "Rebuild tracking information" y confirma la operación.

 

Paso 6: Indexar el contenido

Solr9 upgrade - Drupal data indexing

Ahora puedes indexar la información nuevamente haciendo clic en "Index now".

Una vez finalizado el proceso la  funcionalidad de busqueda ya deberá estar restaurada.

 

Paso 7: Verificar el estado del índice

Verifica que todo se indexó correctamente y comprueba que la búsqueda funciona.

Notas:

Los pasos del 4 al 7 se pueden completar por línea de comando. Esta sería la secuencia:

# Paso 4: Limpiar cachés de Drupal
# Conéctate a tu entorno de producción vía Drush.
drush cr

# Paso 5: Reconstruir la información de seguimiento de búsqueda
drush sapi-rt

# Paso 6: Indexar el contenido
drush sapi-i --batch-size=100

# Paso 7 Verificar el estado del índice
drush sapi-s

La actualización a Solr 9 debería ser fácil y sin problemas. El proceso general y las aristas principales se tratan de cubrir en este artículo, pero si todavía tienes dudas o necesitas ayuda con esta actualización no dudes en ponerte en contacto con nosotros

Fran Rouco

Fran Rouco

Drupal developer