Notariumドキュメント
ドキュメントのバージョン: latest

セマンティック検索を有効にする

Notarium の全文検索(FTS)は常に、設定なしで動きます。セマンティック(ベクトル)検索はオプションの機能です。意味に基づくハイブリッドランキングを追加しますが、その代わりに重量級のネイティブスタック(onnxruntime + sqlite-vec、ディスク上で約 660 MB)と、初回有効化時にダウンロードされるローカルの埋め込みモデル(ディスク上で約 600 MB、RAM 数百 MB)を引き込みます。だからこそデフォルトでは無効で、意図して有効にする形になっています。検索が内部でどう動くかはコンセプト: 検索を参照してください。

2つの独立したスイッチ

インストールとランタイムという2つのレベルを分けて考えると分かりやすくなります。

  1. インストール — ネイティブのベクトルスタックが node_modules に存在するかどうか。Docker イメージには常に同梱されているため、コンテナ内で有効化するのに再ビルドは不要です。ソースから動かす場合、標準の make deps はこれをインストールしません(ローカルの node_modules が約 660 MB 軽くなります)。ローカルでベクトルを扱うには make deps-vector が必要です。
  2. ランタイムVECTOR_SEARCH 変数。公開イメージではデフォルトで off です。

Docker でセマンティック検索を使うには、ランタイムスイッチを切り替えるだけで十分です。スタックはすでに配置済みだからです。

有効化

docker run -d --name notarium \
  -p 3000:3000 \
  -v notarium-data:/data \
  -e VECTOR_SEARCH=on \
  docouno/notarium:latest

(単一の /data ボリュームがすべての状態を保持します — メタデータデータベース、インデックス、あなたのノート、エクスポート成果物。通常の起動時と同じで、インストールを参照してください。ここでは VECTOR_SEARCH=on が追加されただけです。)

初回有効化時に、デフォルトモデル(bge-m3)がダウンロードされ(ディスク上で約 600 MB)、RAM を数百 MB 使用します。インデックス作成はバックグラウンドで進みます。全文検索はすぐに使えて、その裏でベクトルが追いつきます。

モデルティア

モデルは EMBED_MODEL + EMBED_DIMENSIONS のペアで選びます(次元数はモデルと必ず一致させる必要があります)。これは単一イメージ上のランタイム設定であり、別のビルドではありません。

ティア変数RAM使いどころ
offVECTOR_SEARCH=off0非力なマシン、またはキーワード検索で十分な場合。イメージのデフォルト。
compactVECTOR_SEARCH=on, EMBED_MODEL=Xenova/multilingual-e5-small, EMBED_DIMENSIONS=384約 120 MBホームラボ、小さな VPS。
fullVECTOR_SEARCH=on(デフォルト: bge-m3, 1024)約 600 MB高性能なマシン。100 以上の言語、長いコンテキスト。
非対称な e5 モデル

compact ティア(e5)にはプレフィックス EMBED_QUERY_PREFIX="query: "EMBED_PASSAGE_PREFIX="passage: " が必要です。これらを忘れると、検索品質が黙って劣化します。対称な bge-m3 では逆で、プレフィックスは設定してはいけません

余裕のないマシンでのリソース

swap がなく RAM が約 6 GB のホストでは、bge-m3 の初回インデックス作成がメモリ上限にぶつかることがあります。手立ては2つ。compact ティア(e5-small)を使うか、EMBED_CPU_MEM_ARENA=off を設定するかです。後者はわずかな速度低下と引き換えに消費を約 1.9 GB に抑えます。埋め込みパラメータの一覧はリファレンスを参照してください。

全文検索へのフォールバック

VECTOR_SEARCH=off の場合、あるいはネイティブスタックが何らかの理由でロードに失敗した場合でも、検索は全文に対して動き続けます — エラーなしで、結果の見た目も変わりません。セマンティック検索は、常時稼働する FTS の上に乗る追加のランキングチャネルであって、必須の依存ではありません。ベクトルのないインスタンスも、完全に機能するインスタンスです。