Centro de ayuda

Integración con Meilisearch

Meilisearch y Sicultura son dos sistemas diferentes, pero están integrados para mejorar la funcionalidad de búsqueda dentro del sistema Sicultura.

A continuación, se describe de manera general cómo se hizo la integración entre Meilisearch y Sicultura:

  • Configuración de Meilisearch: Se configuró la instancia de Meilisearch para utilizarla como motor de búsqueda. Esto implicó instalar y configurar Meilisearch en el servidor de producción del Ministerio. La instancia se encuentra disponible en https://sicultura.gob.pa/meilisearch

  • Indexación de datos: Una vez que Meilisearch estuvo configurado, se indexaron los datos relevantes de Sicultura en Meilisearch. Esto implicó extraer y transformar los datos de Sicultura en un formato compatible con Meilisearch y cargarlos en el índice de Meilisearch. Se creó el índice v2-sicultura y se desarrolló un driver para conectar Statamic con Meilisearch. El código fuente del driver está ubicado en /app/Search/Meilisearch.

  • Conexión entre Sicultura y Meilisearch: Se estableció una conexión o integración entre Sicultura y Meilisearch para permitir que Sicultura realizara consultas y obtuviera resultados de búsqueda desde Meilisearch. Los datos de conexión se encuentra en el archivo de entorno .env en la raíz del sitio.

  • Implementación de la búsqueda: En Sicultura, se utilizó la funcionalidad de búsqueda de Meilisearch en lugar de la búsqueda predeterminada. Esto implicó enviar consultas de búsqueda desde Sicultura a Meilisearch utilizando el API de Meilisearch y recibir los resultados correspondientes.

  • Resultados y presentación: Una vez que se obtuvieron los resultados de búsqueda de Meilisearch, se procesaron y presentaron de manera adecuada dentro de la interfaz de usuario de Sicultura. Esto implicó formatear los resultados, aplicar filtros adicionales y mostrarlos de manera coherente en la lista de resultados de búsqueda. Ver más abajo apartado sobre InstantSearch.

  • Mantenimiento y sincronización: Era importante mantener actualizado el índice de Meilisearch para reflejar los cambios en los datos de Sicultura. Esto podía requerir una sincronización periódica o en tiempo real entre los dos sistemas para asegurarse de que la información de búsqueda fuera precisa y estuviera actualizada. Se configuró la sincronización en tiempo real para las operaciones de creación, edición, eliminación y publicación de fichas de agentes, eventos, espacios y manifestaciones culturales y también para los programas oficiales. Además se creó la funcionalidad de sincronización masiva que borra y reindexa todo el contenido si es necesario.

API de Meilisearch

La API de Meilisearch era una interfaz que permite interactuar con el motor de búsqueda Meilisearch para indexar y realizar consultas en los datos. Aquí se menciona algunos aspectos clave al utilizar el API de Meilisearch en la integración con Sicultura:

  • Indexación de datos: Se puede utilizar el API de Meilisearch para enviar los datos relevantes desde Sicultura a Meilisearch para su indexación. Esto implica formatear los datos en formato JSON y enviar una solicitud HTTP POST al endpoint de indexación de Meilisearch. Ver los formateadores en /app/SearchTransformers.

  • Consultas de búsqueda: Se pueden enviar consultas de búsqueda desde Sicultura a Meilisearch utilizando el API. Esto implica enviar una solicitud HTTP POST al endpoint de búsqueda de Meilisearch con los parámetros de búsqueda adecuados, como el término de búsqueda, los filtros y las opciones de clasificación.

  • Resultados de búsqueda: La respuesta del API de Meilisearch incluye los resultados de búsqueda relevantes en formato JSON. Se pueden procesar estos resultados en Sicultura y utilizar la información proporcionada, como el texto de coincidencia resaltado y los atributos adicionales asociados con cada resultado.

Meilisearch InstantSearch

Meilisearch InstantSearch es una biblioteca que proporciona una interfaz de usuario predefinida y componentes listos para usar para mostrar los resultados de búsqueda en tiempo real. En Sicultura se personalizaron los diferentes componentes usando el Manual de marca del sistema:

  • Configuración: Se instaló y compiló la biblioteca de Meilisearch InstantSearch en el frontend de Sicultura, usando npm y webpack.

  • Conexión con la instancia de Meilisearch: Se creó un API token con permisos de lectura para conectarse a la instancia de Meilisearch que se había configurado previamente.

  • Implementación de la interfaz de búsqueda: Meilisearch InstantSearch proporciona componentes de interfaz de búsqueda listos para usar, como un cuadro de búsqueda, filtros, clasificación y paginación. Los diferentes componentes usados en Sicultura están totalmente personalizados para mantener el diseño del resto del sistema siguiendo el manual de marca.

  • Presentación de resultados: Los componentes de Meilisearch InstantSearch se encargan de mostrar los resultados de búsqueda de manera dinámica a medida que los usuarios interactúa con la interfaz. Esto implica que el usuario no debe esperar a recargar la página para ver resultados, estos se van mostrando en tiempo real a medida que interactúa con los filtros.

Se recomienda consultar la documentación oficial de Meilisearch y Meilisearch InstantSearch para obtener instrucciones detalladas sobre cómo utilizar el API.

Volver al listado de guías