コンテンツにスキップ

検索

kura は、速度と精度をトレードオフする 3 つの検索コマンドを提供します。 いずれもすべてローカルで動きます。

BM25 ランキングによる FTS5 全文検索です。新規インストール時は sqlite-vaporetto 形態素解析トークナイザーを使うため、日本語クエリは文字 n-gram では なく実際の単語に分割されます。高速(通常 100ms 未満)で、LLM プロバイダを必要としません。常に動くモードです。

kura search "WAL チェックポイント"

ドキュメントに現れる語が概ね分かっているときに使います。

sqlite-vec を使った、embedding に対するベクトル K 近傍検索です。ドキュメントはチャンクに分割されて ローカルモデルで embedding 化されるため、クエリは正確な語ではなく 意味で一致します。「書き込み中も読める仕組み」というクエリが、 共通語が無くても「WAL チェックポイント」というメモを引き当てられます。

kura vsearch "書き込み中も読める仕組み"

vsearch は embedding を必要とし、embedding はプロバイダを必要と します。下の劣化動作を参照してください。

kura query — ハイブリッド(最高精度)

Section titled “kura query — ハイブリッド(最高精度)”

フルパイプラインです。キーワード検索とセマンティック検索を実行し、 2 つのランク付きリストを融合してから、上位候補をローカル LLM で リランクします。最高精度のモードで、正確な語が分からないときに 使います。

kura query "SQLite の並行性"
分かっているもの 使うモード
現れる語 kura search
語ではなく発想だけ kura vsearch
語はさておき最良の答えが欲しい kura query

セマンティック検索とハイブリッド検索は、投入済みのベクトル インデックスから読み取ります。kura add はプロバイダがあれば新規 ドキュメントを embedding 化し、kura embed は不足分を(再)生成 します。kura status は embedding カバレッジを表示するので、 バックフィルの要否が分かります。

embedding モデルを変更したら、kura doctor --fix(変更の検出)に 続けて kura embed を実行し、新しいモデルの次元でベクトルを再生成 してください。

kura は検索を決してハードに失敗させません。

  • kura search はプロバイダの有無にかかわらず常に動きます。
  • kura vsearch は embedding を必要とします。プロバイダも既存 ベクトルも無い場合は、エラーにせず警告を出して有用な結果を返しま せん。モデルを明確に必要としたコマンドは終了コード 4 で終わります。
  • kura query は、セマンティック検索やリランクが利用できない ときはキーワード結果側へフォールバックします。モデル由来の精度 向上は無いものの、答えは返ります。

これはコアの保証です。ナレッジベースはオフラインでも検索可能なまま です。プロバイダの選択や無効化は 設定 を 参照してください。