Sonic is a fast, lightweight and schema-less search backend. It ingests search texts and identifier tuples that can then be queried against in a microsecond's time.
Sonic is a fast, lightweight, and schema-less search backend written in Rust, designed as a high-performance alternative to "heavyweight" systems like Elasticsearch for specific use cases.
The main features of this tool include:
Ultra-Fast Performance: It is engineered for speed, responding to search queries in the microsecond (µs) range.
Minimal Resource Footprint: Sonic is extremely efficient, typically consuming only about 30MB of RAM and maintaining a low CPU footprint even under heavy load.
Identifier Index Model: Unlike traditional document indexes, Sonic is an identifier index; it returns IDs that you then use to retrieve the full documents from your own external database.
Advanced Search Functionality: It supports auto-completion (suggestions), typo correction (fuzzy search), and natural language normalization to provide relevant results even with user errors.
Global Language Support: The system offers full Unicode compatibility for over 80 of the most spoken languages, including automatic language detection and stop-word removal.
Lightweight Network Protocol: It communicates via the Sonic Channel, a simple TCP-based protocol designed to be much lighter and faster than traditional HTTP APIs.
Flexible Organization: Search terms are organized into collections and buckets, allowing you to isolate indexes (for example, having a separate bucket for every user on your platform).
Real-Time Indexing: Data ingestion (adding or removing items) is light and can be done while the server is running, with background tasks quickly making the new data searchable.