Быстрый поисковый движок с поддержкой опечаток и API для полнотекстового, семантического и гибридного поиска на сайтах и в приложениях.
valeriansaliou/sonic
Лёгкий поисковый бэкенд без схемы: индексирует текст и возвращает идентификаторы, предлагая компактную альтернативу Elasticsearch.
Open source альтернатива:Elasticsearch
- Звёзды
- 21,367
- Форки
- 618
- Открытые issues
- 53
- Последний коммит
- 16 часов назад
Что это?
Sonic — поисковый бэкенд, написанный на Rust. Он хранит поисковые термины в коллекциях, сгруппированных по бакетам, и возвращает идентификаторы объектов, а не документы. Поэтому приложения держат полные данные во внешней базе, а Sonic используют только для поиска подходящих ID. Сервер поддерживает добавление и удаление записей без остановки, исправление опечаток, автодополнение слов через команду suggest и удаление стоп-слов для множества языков.
Sonic рассчитан на команды, которым нужен поиск без затрат ресурсов, характерных для полнофункционального движка. По данным проекта, под нагрузкой он использует около 30 МБ RAM и отвечает на запросы за микросекунды; бенчмарки проводились на одной машине. Клиенты подключаются к нему по Sonic Channel — простому TCP-протоколу. Официальные библиотеки есть для Node.js, Rust и PHP, а для других языков доступны многочисленные клиентские библиотеки от сообщества.
У Sonic нет HTTP API, а индекс не помещается целиком в оперативную память, поэтому для высокой скорости запросов ему нужно хранилище на SSD.
Ключевые возможности
- 01Хранит только идентификаторы, которые ссылаются на записи во внешней базе данных.
- 02Исправляет опечатки в запросах, если точных совпадений недостаточно.
- 03Дополняет слова в реальном времени с помощью команды suggest.
- 04Позволяет добавлять и удалять записи, пока сервер работает.
- 05Удаляет стоп-слова для многих языков и выполняет стемминг для некоторых из них.
- 06Работает по простому TCP-протоколу Sonic Channel; клиентские библиотеки доступны для нескольких языков.
Сценарии использования
- Добавление полнотекстового поиска в чат или службу поддержки, где данные сообщений хранятся в отдельной базе.
- Создание подсказок слов в поисковом интерфейсе для конечных пользователей.
- Запуск лёгкого поискового сервиса на небольшом сервере вместо Elasticsearch.
Быстрый старт
- 1
Установите Sonic с помощью Cargo
cargo install sonic-server - 2
Возьмите пример конфигурации config.cfg из репозитория и настройте его для своей среды
- 3
Запустите Sonic с файлом конфигурации
./sonic -c /path/to/config.cfg
Что важно знать
- Для сборки нужны системные зависимости RocksDB, например clang, libclang-dev и llvm-dev.
- Sonic возвращает только идентификаторы, поэтому для загрузки полных записей нужна внешняя база данных.
- HTTP-эндпоинта нет; взаимодействовать с Sonic нужно через протокол Sonic Channel или клиентскую библиотеку.
Темы
Частые вопросы
- Что такое sonic?
- Лёгкий поисковый бэкенд без схемы: индексирует текст и возвращает идентификаторы, предлагая компактную альтернативу Elasticsearch. Sonic — поисковый бэкенд, написанный на Rust. Он хранит поисковые термины в коллекциях, сгруппированных по бакетам, и возвращает идентификаторы объектов, а не документы. Поэтому приложения держат полные данные во внешней базе, а Sonic используют только для поиска подходящих ID. Сервер поддерживает добавление и удаление записей без остановки, исправление опечаток, автодополнение слов через команду suggest и удаление стоп-слов для множества языков.
- sonic можно использовать бесплатно? Какая у него лицензия?
- sonic распространяется с открытым исходным кодом под лицензией MPL-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- sonic всё ещё поддерживается?
- Активно поддерживается. Последний коммит в sonic — 21 окт. 2026 г..
- Для чего можно использовать sonic?
- Добавление полнотекстового поиска в чат или службу поддержки, где данные сообщений хранятся в отдельной базе. Создание подсказок слов в поисковом интерфейсе для конечных пользователей. Запуск лёгкого поискового сервиса на небольшом сервере вместо Elasticsearch.
- Как установить sonic?
- Установите Sonic с помощью Cargo: cargo install sonic-server Возьмите пример конфигурации config.cfg из репозитория и настройте его для своей среды Запустите Sonic с файлом конфигурации: ./sonic -c /path/to/config.cfg
- Где скачать sonic?
- Исходный код и инструкции по установке — на GitHub: https://github.com/valeriansaliou/sonic
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Open-source поисковая база данных с полнотекстовым, векторным и гибридным поиском, индексацией в реальном времени и SQL — альтернатива Elasticsearch.
Модуль Redis, добавляющий полнотекстовый поиск, вторичные индексы, поиск по векторному сходству и агрегирующие запросы.
Приватная поисковая система на собственном сервере: индексирует посещённые веб-страницы и сохранённые файлы, а искать можно через веб-интерфейс, терминал или AI-ассистентов по MCP.
Библиотека полнотекстового поиска на Rust, вдохновлённая Apache Lucene, для встраивания поиска в приложения.
Typesense — поисковый движок с открытым исходным кодом, работающий в памяти: он поддерживает поиск с учётом опечаток, фасетный, географический и векторный поиск и предлагает более простой вариант, чем Algolia и Elasticsearch.