valeriansaliou/sonic

テキストを高速に索引化して、マイクロ秒単位で検索結果をIDで返す軽量検索サーバーです。

優良食堂ギット飯が実際に動かして検証し、選んだリポジトリです解説ページへ →
インストール型ツール自由に使える · MPL-2.0バックエンド・DBRust難易度
21,3590 保存
619フォーク56Issue
デモ・公式サイトをひらくcrates.io

中辛 の解説

Sonic は検索クエリをマイクロ秒単位で処理し、外部データベースから対象データを取得するための ID を返す検索バックエンドです。テキストをコレクション内に格納でき、複数のユーザーごとに分離したインデックスを構築できます。Sonic は自然言語処理によってスペルミスを訂正し、リアルタイムでオートコンプリートを提供します。インデックスへのデータ追加・削除は実行中に行え、バックグラウンドで段階的に統合されます。Unix パッケージ、Cargo、Docker、Homebrew など複数の方法でインストールでき、設定ファイルを編集して実行します。テキストデータを保存せず、単語グラフのみを保持するため軽量です。

こんなリポジトリです

こんなときに便利です

  • 大規模テキストデータを複数ユーザー間で分離して索引化し、迅速な検索結果を提供する必要があるサービス
  • Elasticsearch よりもシンプルで軽量な検索システムが必要な場合
  • 約5ドル/月の低スペック VPS 上で数億件のオブジェクトを索引化・検索する場合

主な機能

マイクロ秒単位の検索応答と低メモリ・CPU 消費80以上の言語対応とスペルミス自動修正リアルタイムオートコンプリート提案

ほかとの違い

Elasticsearch とは異なり、軽量な Sonic Channel プロトコルのみで通信し、ID ベースの索引設計により小さなメモリフットプリントで大規模データセットに対応できます。

このリポジトリの作り方

はじめてですか? むずかしくありません — 上から順にたどれば、自分の環境で動かして味見できます。

準備するもの

  • build-essential(ソースからビルドの場合)
  • clang・libclang-dev・libc6-dev・g++・llvm-dev(ソースからビルドの場合)
  • Docker(Docker でのインストールの場合)
  • SSD ストレージ(運用環境)

すぐに始める

  1. Debian/Ubuntu 向けに APT リポジトリを追加します。
echo "deb [signed-by=/usr/share/keyrings/valeriansaliou_sonic.gpg] https://packagecloud.io/valeriansaliou/sonic/debian/ bookworm main" > /etc/apt/sources.list.d/valeriansaliou_sonic.list
  1. GPG キーをダウンロードして登録します。
curl -fsSL https://packagecloud.io/valeriansaliou/sonic/gpgkey | gpg --dearmor -o /usr/share/keyrings/valeriansaliou_sonic.gpg
  1. パッケージマネージャーを更新します。
apt-get update
  1. Sonic をインストールします。
apt-get install sonic
  1. 設定ファイルを編集します。
nano /etc/sonic.cfg
  1. Sonic を再起動します。
service sonic restart

別の方法(ソースからビルド): cargo build --locked --release で ./target/release に バイナリが生成されます。ビルドには build-essential・clang・libclang-dev・libc6-dev・g++・llvm-dev が必要です。

別の方法(Cargo でインストール): cargo install sonic-server で直接インストールでき、sonic コマンドで実行できます。

別の方法(Docker): docker pull valeriansaliou/sonic:v1.10.1 でイメージを取得し、docker run -p 1491:1491 -v /path/to/your/sonic/config.cfg:/etc/sonic/config.toml -v /path/to/your/sonic/store/:/var/lib/sonic/store/ valeriansaliou/sonic:v1.4.9 で実行します。設定ファイルで channel.inet を 0.0.0.0:1491、store.kv.path を /var/lib/sonic/store/kv/、store.fst.path を /var/lib/sonic/store/fst/ に設定してください。

ギット飯トライで味見

入れるのが面倒で少し不安だったなら — 安全スキャンからインストールまで、ターミナル一行で終わります。

ターミナルに貼り付ければ、ギット飯の安全スキャン → 隔離フォルダへ clone → インストール → 実行方法の案内まで自動です。はじめてでも大丈夫 — この一行だけです。

npx gitbap-try valeriansaliou/sonic

Node.js さえあれば、インストールなしで動きます · ギット飯トライとは? →

スター推移 · 7日

21,3597日間の増加数を計算するための比較データが不足しています

確認日時

使いやすさ · まねしやすいか

サンプル評点 32/100
  • ゆるいライセンス
  • テストあり
  • サンプル集
  • 最近の更新
  • AGENTS.md
  • llms.txt
  • テンプレート

最近の更新あり · 2019 年に作成

「バックエンド・DB」 こういうリポジトリを毎週受け取りませんか?

毎週月曜の朝、選んだ一膳だけ。広告なし · いつでも解除。

自分のリポジトリですか? README にギット飯バッジを貼る
[![깃밥](https://www.gitbap.com/badge/valeriansaliou/sonic.svg)](https://www.gitbap.com/r/valeriansaliou/sonic)
Claude からそのまま使う — ギット飯のつなぎ方

ギット飯を Claude につなぐと、こうしたリポジトリを Claude・Cursor・Codex から直接さがして試せます。

方法 ① コネクタ URL

Claude の設定 → コネクタにこのアドレスを貼り付け。

https://www.gitbap.com/api/mcp
方法 ② プラグイン(試用まで)

プラグインを入れると /gitbap-trending·/gitbap-try のスラッシュコマンドで、その場でリポジトリを試せます。Claude Code で下の 2 行を順に実行してください。

/plugin marketplace add jakeparkcolde/gitbap-cowork
/plugin install gitbap-cowork@gitbap
つなぎ方をくわしく →

AI が README をもとに要約しました · 原文を見る