💡 Cuéntanos tu proyecto

Llull Search Engine: Motor de búsqueda open source sub-milisegundo

Multi-index, fuzzy matching, ranking ponderado y conectividad con las bases de datos más populares. Un motor de búsqueda que puedes desplegar tú mismo.

⎇ Ver en GitHub →

Qué es Llull Search Engine

Llull Search Engine es un motor de búsqueda open source diseñado para ser autogestionado. A diferencia de soluciones como Algolia o Elasticsearch, Llull se despliega en tu propia infraestructura y te da control total sobre tus datos, rankings y costes.

El nombre viene de Ramon Llull, el filósofo y lógico mallorquín que en el siglo XIII diseñó el Ars Magna, un sistema mecánico para generar conocimiento. Llull Search Engine sigue ese espíritu: un sistema estructurado, eficiente y determinista para encontrar información.

"Un motor de búsqueda no debería ser una caja negra. Deberías poder ver cómo rankea, por qué encuentra lo que encuentra, y ajustarlo a tus necesidades."

Tecnología y arquitectura

Llull Search Engine está construido con un stack moderno y modular que prioriza el rendimiento y la flexibilidad:

Go
TypeScript
Dart
React
Flutter

Core en Go

El corazón del motor está escrito en Go. Esto proporciona un rendimiento excepcional con latencias sub-milisegundo, gestión eficiente de memoria y concurrencia nativa. Go permite manejar miles de consultas por segundo sin degradación.

Prefix Trie + Fuzzy Matching

El índice principal usa un prefix trie, lo que permite search-as-you-type inmediato: según el usuario escribe, el sistema encuentra coincidencias en microsegundos. Sobre esto, el motor aplica fuzzy matching para tolerar errores tipográficos, variaciones ortográficas y búsquedas aproximadas.

Ranking ponderado

Llull no trata todos los resultados por igual. Usa un sistema de ranking ponderado que considera múltiples señales: frecuencia del término, posición en el documento, relevancia del campo (título > contenido > metadatos), y antigüedad. Todo configurable.

Multi-index y conectividad

Una de las características más potentes de Llull es su capacidad para indexar datos desde múltiples orígenes simultáneamente:

  • Firestore — ideal para aplicaciones Firebase
  • PostgreSQL — para datos relacionales estructurados
  • MySQL — compatibilidad con bases de datos tradicionales
  • MongoDB — para documentos NoSQL

Cada fuente puede tener su propio índice con configuraciones independientes de tokenización, stemming y pesos.

SDKs para TypeScript, Dart y React

Para facilitar la integración, Llull incluye SDKs oficiales:

  • TypeScript SDK — integración directa con aplicaciones web y Node.js
  • Dart SDK — para aplicaciones Flutter y Dart
  • React hooks — componentes React listos para usar con search-as-you-type
  • Flutter widgets — interfaz de búsqueda nativa para apps móviles

Cómo desplegarlo

Desplegar Llull Search Engine es tan simple como tener Go instalado y ejecutar:

git clone https://github.com/2mes4/llull-searchengine
cd llull-searchengine
go run ./cmd/server

El servidor arranca en el puerto 8080 con una API REST completa. Los SDKs de cliente se conectan directamente para empezar a indexar y buscar.

Para despliegues en producción, el repositorio incluye:

  • Dockerfile para contenedorización
  • Configuración de Kubernetes (manifests YAML)
  • Scripts de backup y migración de índices
  • Monitorización con métricas Prometheus

Casos de uso

Llull Search Engine es especialmente útil en escenarios donde necesitas control sobre tu búsqueda:

Búsqueda en producto SaaS

Tu aplicación web necesita búsqueda interna. En lugar de pagar por API de terceros o montar un Elasticsearch que requiere operaciones dedicadas, Llull se despliega con un solo binario y se integra con Firestore o PostgreSQL directamente.

Búsqueda multi-tenant

Si tienes una plataforma con múltiples clientes, Llull permite crear índices aislados por tenant sin esfuerzo. Cada cliente tiene su propio espacio de búsqueda, con rankings y configuraciones independientes.

Búsqueda offline / edge

Gracias a su tamaño reducido y cero dependencias externas, Llull puede ejecutarse en dispositivos edge o entornos offline. El SDK Dart permite integrarlo directamente en aplicaciones Flutter para búsqueda local.

Por qué open source

En 2mes4 creemos que la infraestructura de búsqueda no debería ser un vendor lock-in. Cada vez que usas un servicio de búsqueda externo, estás delegando el control de tus datos, tus rankings y tus costes. Con Llull, recuperas ese control.

El proyecto está en GitHub con licencia MIT. Puedes usarlo, modificarlo y desplegarlo sin restricciones. Y si encuentras algo que mejorar, las issues y PRs son bienvenidas.