Repolode
valeriansaliou

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

    Cargo에서 Sonic을 설치합니다

    cargo install sonic-server
  2. 2

    저장소에서 샘플 config.cfg를 가져와 환경에 맞게 조정합니다

  3. 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 통계는 매일 갱신됩니다.

관련 프로젝트