検索
kura は、速度と精度をトレードオフする 3 つの検索コマンドを提供します。 いずれもすべてローカルで動きます。
3 つのモード
Section titled “3 つのモード”kura search — キーワード
Section titled “kura search — キーワード”BM25 ランキングによる FTS5 全文検索です。新規インストール時は sqlite-vaporetto 形態素解析トークナイザーを使うため、日本語クエリは文字 n-gram では なく実際の単語に分割されます。高速(通常 100ms 未満)で、LLM プロバイダを必要としません。常に動くモードです。
kura search "WAL チェックポイント"ドキュメントに現れる語が概ね分かっているときに使います。
kura vsearch — セマンティック
Section titled “kura vsearch — セマンティック”sqlite-vec を使った、embedding に対するベクトル K 近傍検索です。ドキュメントはチャンクに分割されて ローカルモデルで embedding 化されるため、クエリは正確な語ではなく 意味で一致します。「書き込み中も読める仕組み」というクエリが、 共通語が無くても「WAL チェックポイント」というメモを引き当てられます。
kura vsearch "書き込み中も読める仕組み"vsearch は embedding を必要とし、embedding はプロバイダを必要と
します。下の劣化動作を参照してください。
kura query — ハイブリッド(最高精度)
Section titled “kura query — ハイブリッド(最高精度)”フルパイプラインです。キーワード検索とセマンティック検索を実行し、 2 つのランク付きリストを融合してから、上位候補をローカル LLM で リランクします。最高精度のモードで、正確な語が分からないときに 使います。
kura query "SQLite の並行性"どのモードを使うか
Section titled “どのモードを使うか”| 分かっているもの | 使うモード |
|---|---|
| 現れる語 | kura search |
| 語ではなく発想だけ | kura vsearch |
| 語はさておき最良の答えが欲しい | kura query |
Embedding
Section titled “Embedding”セマンティック検索とハイブリッド検索は、投入済みのベクトル
インデックスから読み取ります。kura add はプロバイダがあれば新規
ドキュメントを embedding 化し、kura embed は不足分を(再)生成
します。kura status は embedding カバレッジを表示するので、
バックフィルの要否が分かります。
embedding モデルを変更したら、kura doctor --fix(変更の検出)に
続けて kura embed を実行し、新しいモデルの次元でベクトルを再生成
してください。
プロバイダが無いときの劣化
Section titled “プロバイダが無いときの劣化”kura は検索を決してハードに失敗させません。
kura searchはプロバイダの有無にかかわらず常に動きます。kura vsearchは embedding を必要とします。プロバイダも既存 ベクトルも無い場合は、エラーにせず警告を出して有用な結果を返しま せん。モデルを明確に必要としたコマンドは終了コード4で終わります。kura queryは、セマンティック検索やリランクが利用できない ときはキーワード結果側へフォールバックします。モデル由来の精度 向上は無いものの、答えは返ります。
これはコアの保証です。ナレッジベースはオフラインでも検索可能なまま です。プロバイダの選択や無効化は 設定 を 参照してください。