Um mecanismo de busca rápido e tolerante a erros de digitação, com API para buscas textuais, semânticas e híbridas em sites e aplicativos.
valeriansaliou/sonic
Backend de busca leve e sem schema que indexa texto e retorna identificadores, como alternativa enxuta ao Elasticsearch.
Alternativa open source a:Elasticsearch
- Estrelas
- 21,367
- Forks
- 618
- Issues abertas
- 53
- Último commit
- há 14 horas
O que é?
Sonic é um backend de busca escrito em Rust. Ele armazena termos de busca em coleções agrupadas em buckets e retorna identificadores de objetos, não documentos; assim, as aplicações mantêm todos os dados em um banco externo e usam o Sonic apenas para encontrar IDs correspondentes. Ele permite inserir e remover itens enquanto o servidor está em execução, corrigir erros de digitação, completar palavras automaticamente por meio do comando suggest e remover stop words em uma ampla variedade de idiomas.
O Sonic foi projetado para equipes que precisam de busca sem o custo de recursos de um mecanismo completo. O projeto informa que usa cerca de 30 MB de RAM sob carga e responde a consultas na faixa dos microssegundos, com benchmarks realizados em uma única máquina. Os clientes se comunicam com ele pelo Sonic Channel, um protocolo TCP simples. Há bibliotecas oficiais para Node.js, Rust e PHP, além de muitos clientes da comunidade para outras linguagens.
O Sonic não tem API HTTP e não mantém seu índice na memória, então espera-se que use armazenamento baseado em SSD para ter um bom desempenho nas consultas.
Recursos principais
- 01Armazena apenas identificadores, que apontam para registros em um banco de dados externo.
- 02Corrige erros de digitação nas consultas quando as correspondências exatas não são suficientes.
- 03Completa palavras automaticamente em tempo real por meio do comando suggest.
- 04Permite adicionar e remover itens enquanto o servidor está em execução.
- 05Remove stop words em vários idiomas e aplica stemming em alguns deles.
- 06Usa um protocolo TCP simples chamado Sonic Channel, com bibliotecas cliente em várias linguagens.
Casos de uso
- Adicionar busca de texto completo a um produto de chat ou helpdesk cujos dados de mensagens ficam em um banco de dados separado.
- Criar caixas de sugestão de palavras em uma interface de busca voltada ao usuário final.
- Executar um serviço de busca leve em um servidor pequeno, em vez de usar o Elasticsearch.
Início rápido
- 1
Instale o Sonic pelo Cargo
cargo install sonic-server - 2
Obtenha o arquivo de configuração de exemplo config.cfg do repositório e ajuste-o ao seu ambiente
- 3
Execute o Sonic com seu arquivo de configuração
./sonic -c /path/to/config.cfg
Antes de usar
- A compilação requer dependências de sistema do RocksDB, como clang, libclang-dev e llvm-dev.
- O Sonic retorna apenas identificadores, então você precisa de um banco de dados externo para carregar os registros completos.
- Não há endpoint HTTP; é necessário interagir pelo protocolo Sonic Channel ou por uma biblioteca cliente.
Tópicos
Perguntas frequentes
- O que é sonic?
- Backend de busca leve e sem schema que indexa texto e retorna identificadores, como alternativa enxuta ao Elasticsearch. Sonic é um backend de busca escrito em Rust. Ele armazena termos de busca em coleções agrupadas em buckets e retorna identificadores de objetos, não documentos; assim, as aplicações mantêm todos os dados em um banco externo e usam o Sonic apenas para encontrar IDs correspondentes. Ele permite inserir e remover itens enquanto o servidor está em execução, corrigir erros de digitação, completar palavras automaticamente por meio do comando suggest e remover stop words em uma ampla variedade de idiomas.
- sonic é gratuito? Qual é a licença?
- sonic é open source sob a licença MPL-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- sonic ainda é mantido?
- Manutenção ativa. O último commit de sonic foi em 21 de out. de 2026.
- Para que posso usar sonic?
- Adicionar busca de texto completo a um produto de chat ou helpdesk cujos dados de mensagens ficam em um banco de dados separado. Criar caixas de sugestão de palavras em uma interface de busca voltada ao usuário final. Executar um serviço de busca leve em um servidor pequeno, em vez de usar o Elasticsearch.
- Como instalar sonic?
- Instale o Sonic pelo Cargo: cargo install sonic-server Obtenha o arquivo de configuração de exemplo config.cfg do repositório e ajuste-o ao seu ambiente Execute o Sonic com seu arquivo de configuração: ./sonic -c /path/to/config.cfg
- Onde consigo sonic?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/valeriansaliou/sonic
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Banco de dados de busca open source com suporte a busca full-text, vetorial e híbrida, indexação em tempo real e SQL, como alternativa ao Elasticsearch.
Um módulo do Redis que adiciona busca full-text, indexação secundária, busca por similaridade vetorial e consultas de agregação aos dados do Redis.
Um mecanismo de busca privado e auto-hospedado que indexa as páginas da web que você visita e os arquivos que mantém, com busca pela web, terminal ou assistentes de IA via MCP.
Biblioteca de busca full-text em Rust, inspirada no Apache Lucene, para adicionar busca personalizada a aplicações.
Typesense é um mecanismo de busca open source, em memória, com tolerância a erros de digitação, facetas, busca geográfica e busca vetorial, criado para ser uma alternativa mais simples ao Algolia e ao Elasticsearch.