웹사이트와 앱에 전문 검색, 시맨틱 검색, 하이브리드 검색을 제공하는 빠르고 오타에 강한 검색 엔진입니다.
valeriansaliou/sonic
텍스트를 색인하고 식별자를 반환하는 가볍고 스키마가 필요 없는 검색 백엔드로, Elasticsearch의 소규모 대안입니다.
대체할 수 있는 제품:Elasticsearch
- 스타
- 21,367
- 포크
- 618
- 열린 이슈
- 53
- 마지막 커밋
- 14시간 전
어떤 프로젝트인가요?
Sonic은 Rust로 작성된 검색 백엔드입니다. 검색어를 버킷으로 묶인 컬렉션에 저장하고 문서 대신 객체 식별자를 반환하므로, 애플리케이션은 전체 데이터를 외부 데이터베이스에 보관하고 Sonic은 일치하는 ID를 찾는 데만 사용합니다. 서버가 실행 중일 때 항목을 추가하거나 삭제할 수 있고, 오타를 보정하며, suggest 명령으로 단어를 자동 완성하고, 다양한 언어의 불용어를 제거합니다.
Sonic은 완전한 기능을 갖춘 검색 엔진의 리소스 비용 없이 검색 기능이 필요한 팀을 위해 설계되었습니다. 프로젝트 측정 결과, 부하가 걸린 상태에서 RAM을 약 30 MB 사용하고 쿼리에 마이크로초 단위로 응답하며, 벤치마크는 단일 머신에서 측정했습니다. 클라이언트는 간단한 TCP 프로토콜인 Sonic Channel을 통해 연결합니다. Node.js, Rust, PHP용 공식 라이브러리가 있으며 그 밖의 여러 언어를 위한 커뮤니티 클라이언트도 제공됩니다.
Sonic에는 HTTP API가 없고 색인을 메모리에 담지 않으므로, 쿼리 성능을 높이려면 SSD 기반 스토리지가 필요합니다.
핵심 기능
- 01식별자만 저장하고 외부 데이터베이스의 레코드를 참조합니다.
- 02정확히 일치하는 결과가 부족할 때 쿼리의 오타를 보정합니다.
- 03suggest 명령을 통해 단어를 실시간으로 자동 완성합니다.
- 04서버 실행 중에도 항목을 추가하거나 삭제할 수 있습니다.
- 05다양한 언어의 불용어를 제거하고 일부 언어에는 어간 추출을 적용합니다.
- 06Sonic Channel이라는 간단한 TCP 프로토콜을 사용하며 여러 언어의 클라이언트 라이브러리를 제공합니다.
활용 사례
- 메시지 데이터가 별도 데이터베이스에 저장된 채팅 또는 헬프데스크 제품에 전문 검색 기능을 추가합니다.
- 최종 사용자용 검색 인터페이스에 단어 추천 상자를 구현합니다.
- Elasticsearch 대신 소형 서버에서 가벼운 검색 서비스를 운영합니다.
빠른 시작
- 1
Cargo에서 Sonic을 설치합니다
cargo install sonic-server - 2
저장소에서 샘플 config.cfg를 가져와 환경에 맞게 조정합니다
- 3
설정 파일을 지정해 Sonic을 실행합니다
./sonic -c /path/to/config.cfg
사용 전 알아둘 점
- 빌드하려면 clang, libclang-dev, llvm-dev와 같은 RocksDB 시스템 종속 항목이 필요합니다.
- Sonic은 식별자만 반환하므로 전체 레코드를 불러오려면 외부 데이터베이스가 필요합니다.
- HTTP 엔드포인트가 없습니다. Sonic Channel 프로토콜이나 클라이언트 라이브러리를 통해 통신해야 합니다.
토픽
자주 묻는 질문
- sonic은(는) 무엇인가요?
- 텍스트를 색인하고 식별자를 반환하는 가볍고 스키마가 필요 없는 검색 백엔드로, Elasticsearch의 소규모 대안입니다. Sonic은 Rust로 작성된 검색 백엔드입니다. 검색어를 버킷으로 묶인 컬렉션에 저장하고 문서 대신 객체 식별자를 반환하므로, 애플리케이션은 전체 데이터를 외부 데이터베이스에 보관하고 Sonic은 일치하는 ID를 찾는 데만 사용합니다. 서버가 실행 중일 때 항목을 추가하거나 삭제할 수 있고, 오타를 보정하며, suggest 명령으로 단어를 자동 완성하고, 다양한 언어의 불용어를 제거합니다.
- sonic은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- sonic은(는) MPL-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- sonic은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. sonic의 마지막 커밋은 2026년 10월 21일입니다.
- sonic은(는) 어디에 사용할 수 있나요?
- 메시지 데이터가 별도 데이터베이스에 저장된 채팅 또는 헬프데스크 제품에 전문 검색 기능을 추가합니다. 최종 사용자용 검색 인터페이스에 단어 추천 상자를 구현합니다. Elasticsearch 대신 소형 서버에서 가벼운 검색 서비스를 운영합니다.
- sonic는 어떻게 설치하나요?
- Cargo에서 Sonic을 설치합니다: cargo install sonic-server 저장소에서 샘플 config.cfg를 가져와 환경에 맞게 조정합니다 설정 파일을 지정해 Sonic을 실행합니다: ./sonic -c /path/to/config.cfg
- sonic은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/valeriansaliou/sonic
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
실시간 인덱싱과 SQL을 지원하는 오픈소스 검색 데이터베이스로, 전문 검색·벡터 검색·하이브리드 검색을 제공하며 Elasticsearch의 대안으로 활용할 수 있습니다.
Redis에 전문 검색, 보조 인덱싱, 벡터 유사도 및 집계 쿼리를 추가하는 Redis 모듈입니다.
방문한 웹 페이지와 보관한 파일을 색인하고 웹, 터미널, MCP를 통한 AI 비서에서 검색하는 비공개 셀프 호스팅 검색 엔진입니다.
Apache Lucene에서 영감을 받은 Rust 전문 검색 엔진 라이브러리로, 애플리케이션에 맞춤형 검색 기능을 구현할 수 있습니다.
Typesense는 오타 허용, 패싯, 지역 및 벡터 검색을 지원하며 Algolia와 Elasticsearch를 더 간단하게 대체하도록 설계된 오픈소스 인메모리 검색 엔진입니다.