---
title: "セマンティック検索を有効にする"
description: "オプションのベクトル検索: 重量級のネイティブスタック、VECTOR_SEARCH スイッチ、モデルティア、そして機能を損なわずに全文検索へフォールバックする仕組み。"
---

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

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

## 2つの独立したスイッチ

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

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

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

## 有効化

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

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

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

## モデルティア

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

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

> [!warning] 非対称な 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 に抑えます。埋め込みパラメータの一覧は[リファレンス](/docs/reference/environment-variables/)を参照してください。

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

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