Repolode
valeriansaliou

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. 1

    Instala Sonic desde Cargo

    cargo install sonic-server
  2. 2

    Obtén el archivo de configuración de ejemplo config.cfg del repositorio y adáptalo a tu entorno

  3. 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