Un motor de búsqueda rápido y tolerante a errores tipográficos, con una API para búsquedas de texto completo, semánticas e híbridas en sitios web y aplicaciones.
valeriansaliou/sonic
Backend de búsqueda ligero y sin esquema que indexa texto y devuelve identificadores, pensado como una alternativa compacta a Elasticsearch.
Alternativa open source a:Elasticsearch
- Estrellas
- 21,367
- Forks
- 618
- Issues abiertos
- 53
- Último commit
- hace 14 horas
¿Qué es?
Sonic es un backend de búsqueda escrito en Rust. Almacena términos de búsqueda en colecciones agrupadas en buckets y devuelve identificadores de objetos, no documentos. Así, las aplicaciones conservan todos sus datos en una base de datos externa y usan Sonic únicamente para encontrar los ID que coinciden. Admite operaciones de inserción y eliminación mientras el servidor está en ejecución, corrección de errores tipográficos, autocompletado de palabras mediante un comando suggest y eliminación de palabras vacías en una amplia variedad de idiomas.
Sonic está pensado para equipos que necesitan búsquedas sin el costo de recursos de un motor con todas las funciones. El proyecto indica que usa aproximadamente 30 MB de RAM bajo carga y responde a las consultas en el rango de los microsegundos; las pruebas de rendimiento se realizaron en una sola máquina. Los clientes se comunican con Sonic mediante Sonic Channel, un protocolo TCP sencillo. Hay bibliotecas oficiales para Node.js, Rust y PHP, además de muchos clientes de la comunidad para otros lenguajes.
Sonic no tiene una API HTTP y no mantiene su índice en memoria, por lo que requiere almacenamiento basado en SSD para ofrecer un buen rendimiento en las consultas.
Funciones clave
- 01Almacena solo identificadores que apuntan a registros en una base de datos externa.
- 02Corrige errores tipográficos en las consultas cuando las coincidencias exactas no son suficientes.
- 03Completa palabras automáticamente en tiempo real mediante el comando suggest.
- 04Permite agregar y eliminar entradas mientras el servidor está en ejecución.
- 05Elimina palabras vacías en muchos idiomas y aplica stemming en algunos.
- 06Se comunica mediante un protocolo TCP sencillo llamado Sonic Channel, con bibliotecas cliente para varios lenguajes.
Casos de uso
- Añadir búsqueda de texto completo a un producto de chat o de soporte técnico donde los mensajes se almacenan en una base de datos aparte.
- Crear cuadros de sugerencias de palabras en una interfaz de búsqueda para usuarios finales.
- Ejecutar un servicio de búsqueda ligero en un servidor pequeño en lugar de Elasticsearch.
Inicio rápido
- 1
Instala Sonic desde Cargo
cargo install sonic-server - 2
Obtén el archivo de configuración de ejemplo config.cfg del repositorio y adáptalo a tu entorno
- 3
Ejecuta Sonic con tu archivo de configuración
./sonic -c /path/to/config.cfg
Antes de usarlo
- Para compilar se necesitan dependencias del sistema de RocksDB, como clang, libclang-dev y llvm-dev.
- Sonic solo devuelve identificadores, así que necesitas una base de datos externa para cargar los registros completos.
- No hay un endpoint HTTP; debes interactuar mediante el protocolo Sonic Channel o una biblioteca cliente.
Temas
Preguntas frecuentes
- ¿Qué es sonic?
- Backend de búsqueda ligero y sin esquema que indexa texto y devuelve identificadores, pensado como una alternativa compacta a Elasticsearch. Sonic es un backend de búsqueda escrito en Rust. Almacena términos de búsqueda en colecciones agrupadas en buckets y devuelve identificadores de objetos, no documentos. Así, las aplicaciones conservan todos sus datos en una base de datos externa y usan Sonic únicamente para encontrar los ID que coinciden. Admite operaciones de inserción y eliminación mientras el servidor está en ejecución, corrección de errores tipográficos, autocompletado de palabras mediante un comando suggest y eliminación de palabras vacías en una amplia variedad de idiomas.
- ¿sonic es gratuito? ¿Qué licencia tiene?
- sonic es open source bajo la licencia MPL-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿sonic sigue mantenido?
- Mantenimiento activo. El último commit de sonic fue el 21 oct 2026.
- ¿Para qué puedo usar sonic?
- Añadir búsqueda de texto completo a un producto de chat o de soporte técnico donde los mensajes se almacenan en una base de datos aparte. Crear cuadros de sugerencias de palabras en una interfaz de búsqueda para usuarios finales. Ejecutar un servicio de búsqueda ligero en un servidor pequeño en lugar de Elasticsearch.
- ¿Cómo se instala sonic?
- Instala Sonic desde Cargo: cargo install sonic-server Obtén el archivo de configuración de ejemplo config.cfg del repositorio y adáptalo a tu entorno Ejecuta Sonic con tu archivo de configuración: ./sonic -c /path/to/config.cfg
- ¿Dónde consigo sonic?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/valeriansaliou/sonic
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Base de datos de búsqueda de código abierto con búsqueda de texto completo, vectorial e híbrida, indexación en tiempo real y SQL; una alternativa a Elasticsearch.
Un módulo de Redis que añade búsqueda de texto completo, índices secundarios, búsquedas de similitud vectorial y consultas de agregación a los datos de Redis.
Un buscador privado y autohospedado que indexa las páginas web que visitas y los archivos que guardas, y permite buscarlos desde la web, la terminal o asistentes de IA mediante MCP.
Biblioteca de búsqueda de texto completo en Rust, inspirada en Apache Lucene, para integrar búsquedas personalizadas en aplicaciones.
Typesense es un motor de búsqueda de código abierto y en memoria, con tolerancia a errores tipográficos, facetas, búsqueda geográfica y vectorial, pensado como una alternativa más sencilla a Algolia y Elasticsearch.